我正在尝试检测我的UITextfield上的退格键,它是空的。我看到了这个,但无法弄明白。任何精心设计的答案或代码段都会有所帮助
答案 0 :(得分: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;
}
从视觉上看,这与字段为空一样好,并且它是在空字段上不调用委托方法的解决方法。
希望有所帮助。
答案 1 :(得分:0)
:)仅用于标题“检测退格”,我使用UIKeyboardTypeNumberPad
。
今晚我也遇到了同样的问题,以下是我的代码:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog([NSString stringWithFormat:@"%d", [string length]]);
}
因为使用UIKeyboardTypeNumberPad
,用户只能输入Number或backspace,所以当string的长度为0时,它必须是退格键。
希望以上会有所帮助。