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

时间:2011-04-01 15:33:15

标签: iphone ios uitextfield

我正在从我的本地数据库实现一个搜索栏,当用户输入信息时从db搜索。问题是我将最近的字符和之前的字符连接起来然后发送给搜索。如何删除字符(最后一个) )当按下后退键时。我正在使用

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

感谢您的回复

4 个答案:

答案 0 :(得分:17)

您可以在此方法之后获取应该位于文本字段中的字符串:

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

neString您可能可以“按原样”使用搜索数据库。

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

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

答案 1 :(得分:3)

对于快速用户:

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
}

答案 2 :(得分:2)

更好的想法 - 在textField:shouldChangeCharactersInRange:replacementString:设置条件以在没有更多字符时返回NO ...

if ((range.location == 0) && (string.length == 0))
{        
    NSLog(@"is cleared!");
    return NO;
}

return YES;

答案 3 :(得分:0)

if (self.textView.text.length > 0) 
{ 
    [self.textView deleteBackward]; 
}