3

可能重复:
检测 UITextField 中的退格键

我正在尝试检测我的 UITextfield 上的退格键事件,它是空的。我看到了这一点,但无法弄清楚。任何详尽的答案或代码片段都会有所帮助

检测 UITextField 中的退格键

4

2 回答 2

3

我发现这是不可能的。

当 UITextField 为空时,不会调用以下委托方法。

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

我通过在字段中不断有一个空格来克服这个问题,当我检测到退格并且该字段只包含一个空格时,我在委托方法中返回 NO。

if ([string isEqualToString:@""] && [textField.text isEqualToString:@" "]){
    // Backspace called on 'empty' field.
    return NO;
}

从视觉上看,这与字段为空一样好,并且它是一种解决方法,可以避免在空字段上调用委托方法。

希望有帮助。

于 2010-12-04T18:59:04.673 回答
0

:) 只是为了标题“检测退格”,我使用UIKeyboardTypeNumberPad.

今晚我也遇到了同样的问题,以下是我的代码来找出它:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSLog([NSString stringWithFormat:@"%d", [string length]]);
}

因为使用UIKeyboardTypeNumberPad,用户只能输入数字或退格,所以当字符串长度为 0 时,它必须是退格键。

希望以上内容对您有所帮助。

于 2011-12-26T12:45:13.633 回答