【发布时间】:2011-05-20 01:52:14
【问题描述】:
我正在尝试检测我的 UITextfield 上的退格键事件,它是空的。我看到了这一点,但无法弄清楚。任何详尽的答案或代码 sn-p 都会有所帮助
【问题讨论】:
-
你能多解释一下你这样做是为了什么吗?
标签: iphone uitextfield keypad
我正在尝试检测我的 UITextfield 上的退格键事件,它是空的。我看到了这一点,但无法弄清楚。任何详尽的答案或代码 sn-p 都会有所帮助
【问题讨论】:
标签: iphone uitextfield keypad
:) 仅用于标题“检测退格”,我使用UIKeyboardTypeNumberPad。
我今晚也遇到了同样的问题,下面是我的代码:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog([NSString stringWithFormat:@"%d", [string length]]);
}
因为UIKeyboardTypeNumberPad,用户只能输入数字或退格,所以当字符串长度为0时,必须是退格键。
希望以上内容能有所帮助。
【讨论】:
我发现这是不可能的。
当 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;
}
从视觉上看,这与字段为空一样好,并且它是不对空字段调用委托方法的一种解决方法。
希望对您有所帮助。
【讨论】: