【问题标题】:tapping on another uitextfield does not close the keyboard点击另一个 uitextfield 不会关闭键盘
【发布时间】:2014-11-04 17:35:53
【问题描述】:

我在一个视图和这个方法中有多个 uitextfields:

- (void)textFieldDidEndEditing:(UITextField *)textField

我在打电话:

[textField resignFirstResponder];

但是在UITextfields之间切换时它并没有隐藏键盘,我想关闭它,因为一些UITextfields打开了其他视图。

我已检查所有事件都在触发。

我在这里看到了这个答案,但它没有帮助: Tapping between UITextFields in iOS7

【问题讨论】:

  • 您确定要关闭键盘的文本字段的委托设置为实现 -textFieldDidEndEditing 的类吗?
  • 另外,你是在 iPad 还是 iPhone 上运行这个?
  • 哦,是的,该方法正在触发....如果我点击一个字段,然后点击键盘隐藏但如果我在键盘打开时点击另一个字段,那么它甚至不会隐藏虽然 textFieldDidEndEditing 被调用...问题在 iPad 和 iPhone 上都发生了
  • 你能分享在这些文本字段上设置委托的代码吗?还是您使用 Interface Builder 来连接代理?
  • 为什么要在textFieldDidEndEditing: 方法的文本字段参数上调用resignFirstRespondertextFieldDidEndEditing: 仅在文本字段不再是第一响应者时被调用。所以那个时候打电话resignFirstResponder是没有意义的。

标签: ios uitextfield uikeyboard


【解决方案1】:

如果您想通过点击特定文本字段来关闭键盘,请为该文本字段添加一个标签并实现其委托方法,如下所示:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if (textField.tag == 1)
    {
        [self.view endEditing:YES];
        return NO;
    }
    else
        return YES;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2015-07-03
    • 2017-03-28
    • 1970-01-01
    • 2014-02-12
    相关资源
    最近更新 更多