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

发布于 2024-10-05 13:50:14 字数 373 浏览 2 评论 0原文

可能的重复:
检测 UITextField 中的退格键

我正在尝试检测我的 UITextfield 上的退格键事件,该事件为空。我看到了这个,但无法弄清楚。任何详细的答案或代码片段都会有帮助

检测 UITextField 中的退格

Possible Duplicate:
Detect backspace in UITextField

I am trying to detect the backspace key envent on my UITextfield which is empty. I saw this but could not figure it out. Any elaborate answer or code snippet would be helpful

Detect backspace in UITextField

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

星光不落少年眉 2024-10-12 13:50:14

我发现这是不可能的。

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

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

希望有帮助。

I've found it not to be possible.

When the UITextField is empty, the following delegate method isn't called.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

I conquered this by constantly having a space in the field, and when I detect a backspace and the field only contains a space, I return NO in the delegate method.

if ([string isEqualToString:@""] && [textField.text isEqualToString:@" "]){
    // Backspace called on 'empty' field.
    return NO;
}

Visually, this is as good as the field being empty, and it's a workaround to the delegate method not being called on an empty field.

Hope that helps.

找个人就嫁了吧 2024-10-12 13:50:14

:) 只是为了标题“检测退格”,我在其中使用 UIKeyboardTypeNumberPad

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

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

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

希望以上内容能够给大家带来一些帮助。

:) just for the title "Detect backspace", where I use UIKeyboardTypeNumberPad.

I also meet the same question tonight, and following is my code to find it out:

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

Because with UIKeyboardTypeNumberPad, user can only input Number or backspace, so when the length of string is 0, it must be backspace key.

Hope the above will do some help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文