UITextField如何检查是否按下删除键

我正在实施从我本地数据库的search栏,从数据库search用户input信息。问题是,我concat最近的字符和以前的,然后发送它的search。如何时,我可以删除字符(最后一个)时返回键被按下,我正在使用

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)范围replacementString:(NSString *)string

感谢您的答复

在这个方法之后你可以得到应该在文本字段中的string:

NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; 

而那个neString你可能可以用'按原样'来search数据库。

如果您只想在用户删除textField中的某些字符时获取该事件,则可以通过以下方式进行检查:

 if ([string length] == 0 && range.length > 0) //Some characters deleted 

对于快捷用户:

 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { if string.characters.count == 0 && range.length > 0 { // Back pressed return false } return true } 

更好的主意 – 在textField:shouldChangeCharactersInRange:replacementString:设置一个条件,当没有更多的字符时返回NO …

 if ((range.location == 0) && (string.length == 0)) { NSLog(@"is cleared!"); return NO; } return YES; 
 if (self.textView.text.length > 0) { [self.textView deleteBackward]; }