【问题标题】:Detect backspace in UITextField on a blank textfield [duplicate]在空白文本字段上检测 UITextField 中的退格键[重复]
【发布时间】:2011-05-20 01:52:14
【问题描述】:

可能重复:
Detect backspace in UITextField

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

Detect backspace in UITextField

【问题讨论】:

  • 你能多解释一下你这样做是为了什么吗?

标签: iphone uitextfield keypad


【解决方案1】:

:) 仅用于标题“检测退格”,我使用UIKeyboardTypeNumberPad

我今晚也遇到了同样的问题,下面是我的代码:

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

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

希望以上内容能有所帮助。

【讨论】:

    【解决方案2】:

    我发现这是不可能的。

    当 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;
    }
    

    从视觉上看,这与字段为空一样好,并且它是不对空字段调用委托方法的一种解决方法。

    希望对您有所帮助。

    【讨论】:

    • “我通过不断地在场地中占有一席之地来征服了这一点”——你是如何做到的?你能提供一些示例代码吗?如果用户在文本字段中输入字母“a”,然后按两次退格键会怎样?当您将空格字符注入该字段时?谢谢!
    • 如果字段中只有空格,我不会让用户使用删除键 - 请参阅上面的示例代码。
    • 必须有更好的方法来做到这一点。
    • 你也可以试试像\u200B这样的零宽度字符
    猜你喜欢
    • 2010-12-30
    • 2012-11-18
    • 2019-02-07
    • 1970-01-01
    • 2012-03-16
    • 2015-06-12
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多