在空白文本字段中检测UITextField中的退格

时间:2010-12-04 01:17:59

标签: iphone uitextfield keypad

  

可能重复:
  Detect backspace in UITextField

我正在尝试检测我的UITextfield上的退格键,它是空的。我看到了这个,但无法弄明白。任何精心设计的答案或代码段都会有所帮助

Detect backspace in UITextField

2 个答案:

答案 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时,它必须是退格键。

希望以上会有所帮助。