我正在从我的本地数据库实现一个搜索栏,当用户输入信息时从db中搜索 . 问题是我将最近的字符和之前的字符连接起来然后发送给它进行搜索 . 如何在返回时删除字符(最后一个)按键是我正在使用的
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
谢谢你的回复
您可以在此方法之后获取应该位于文本字段中的字符串:
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
那个 neString 你可能会使用'as is'来搜索数据库 .
neString
如果您只想在用户删除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]; }
4 回答
您可以在此方法之后获取应该位于文本字段中的字符串:
那个
neString
你可能会使用'as is'来搜索数据库 .如果您只想在用户删除textField中的某些字符时获取该事件 - 那么您可以通过以下方式进行检查:
对于快速用户:
更好的主意 - 在textField:shouldChangeCharactersInRange:replacementString:设置条件,当没有更多字符时返回NO ...