我想检测用户何时备份@键。我使用的代码是:
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,它不告诉我哪把钥匙是背放的。有什么办法吗?
发布于 2016-01-02 02:40:55
Backspace不会出现在replacementString参数中。系统通过指定要删除的范围(这将跨越单个组合字符序列,除非用户选择了一个文本范围)来实现backspace,并使用一个替换字符串"" (空字符串)。因此,要检测后退空间或其他删除操作:
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
}https://stackoverflow.com/questions/34562043
复制相似问题