可能重复:
检测 UITextField 中的退格键
我正在尝试检测我的 UITextfield 上的退格键事件,它是空的。我看到了这一点,但无法弄清楚。任何详尽的答案或代码片段都会有所帮助
可能重复:
检测 UITextField 中的退格键
我正在尝试检测我的 UITextfield 上的退格键事件,它是空的。我看到了这一点,但无法弄清楚。任何详尽的答案或代码片段都会有所帮助
我发现这是不可能的。
当 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;
}
从视觉上看,这与字段为空一样好,并且它是一种解决方法,可以避免在空字段上调用委托方法。
希望有帮助。
:) 只是为了标题“检测退格”,我使用UIKeyboardTypeNumberPad.
今晚我也遇到了同样的问题,以下是我的代码来找出它:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog([NSString stringWithFormat:@"%d", [string length]]);
}
因为使用UIKeyboardTypeNumberPad,用户只能输入数字或退格,所以当字符串长度为 0 时,它必须是退格键。
希望以上内容对您有所帮助。