首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检测哪个字符在Swift中被后置

检测哪个字符在Swift中被后置
EN

Stack Overflow用户
提问于 2016-01-02 02:31:56
回答 1查看 944关注 0票数 0

我想检测用户何时备份@键。我使用的代码是:

代码语言:javascript
运行
复制
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        let  char = string.cStringUsingEncoding(NSUTF8StringEncoding)!
        let isBackSpace = strcmp(char, "\\b")

        if (isBackSpace == -92) {
            print("Backspace was pressed")

        }
        return true
    }

..but,它不告诉我哪把钥匙是背放的。有什么办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-02 02:40:55

Backspace不会出现在replacementString参数中。系统通过指定要删除的范围(这将跨越单个组合字符序列,除非用户选择了一个文本范围)来实现backspace,并使用一个替换字符串"" (空字符串)。因此,要检测后退空间或其他删除操作:

代码语言:javascript
运行
复制
    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        if string == "" && range.length > 0 {
            // Backspace or other deletion
            let stringToDelete = (textField.text! as NSString).substringWithRange(range)
            if stringToDelete == "@" {
                print("bye-bye @")
            }
        }
        return true
    }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34562043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档