Iphone UITextField如何检查是否按了删除键
我正在从本地数据库中实现一个搜索栏,当用户输入信息时从数据库中搜索。问题是我搜索最近的字符和以前的字符,然后将其发送搜索。当按下back键时,如何删除字符(最后一个)。我使用 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string -(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串Iphone UITextField如何检查是否按了删除键,iphone,ios,uitextfield,Iphone,Ios,Uitextfield,我正在从本地数据库中实现一个搜索栏,当用户输入信息时从数据库中搜索。问题是我搜索最近的字符和以前的字符,然后将其发送搜索。当按下back键时,如何删除字符(最后一个)。我使用 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string -(BOOL)textField:(UITextField*)textFi
感谢您的回复使用此方法后,您可以获得文本字段中的字符串:
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
而newString
您可能可以使用“原样”来搜索数据库
如果您只想在用户删除textField中的某些字符时获取事件,则可以通过以下方式进行检查:
if ([string length] == 0 && range.length > 0)
//Some characters deleted
更好的主意-在文本字段中:shouldChangeCharactersRange:replacementString:设置一个条件以在没有更多字符时返回NO
if ((range.location == 0) && (string.length == 0))
{
NSLog(@"is cleared!");
return NO;
}
return YES;
对于swift用户:
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
}
范围。位置不总是0。用户可以从其他位置删除。
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
}