【问题标题】:resignFirstResponder does not dismiss keyboard even though code is ran即使运行代码,resignFirstResponder 也不会关闭键盘
【发布时间】:2014-03-04 01:31:39
【问题描述】:

这行代码是在我的邮件 textField editingDidEnd 时运行的。 NSLog 运行,所以我知道该功能已运行,但键盘仍然没有消失。我已将文本框连接为代表。我已经确保故事板中的连接在那里。它仍然不会改变。帮助。谢谢。

- (IBAction)emailDone2:(id)sender
{
    [_email resignFirstResponder];
    NSLog(@"emailDone2");
}

编辑 ** 我按照指示更改了代码,但仍然没有任何作用。什么都没有改变。

- (IBAction)emailDone2:(id)sender
{
    [self.view endEditing:TRUE];
}

【问题讨论】:

    标签: ios7 resignfirstresponder


    【解决方案1】:

    问题是你认为谁是第一响应者和谁是第一响应者可能不一样。幸运的是,已经有一种方法可以解决这个问题。尝试使用

    [topView endEditing:YES];
    

    topView 是最顶层的视图。 endEditing 将遍历子视图,找到第一响应者,并告诉它辞职第一响应者。这比跟踪哪个子视图拥有它要简单得多。

    keyboard not responding to resignFirstResponder 中找到此问题,并在侧栏中链接到此问题。

    【讨论】:

    • 我不是 100% 了解 topView 是什么以及它应该在我的程序中的什么位置。我的 viewController 有文本框,当用户完成一个并在其他任何地方触摸屏幕时,我希望键盘消失。
    • 尝试将其发送到您的主视图控制器;它应该为您找到有第一响应者的人,并告诉它把键盘送走。
    【解决方案2】:

    textViewShouldEndEditing 的返回值应该为 true,resignFirstResponder 才会关闭

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 2020-05-22
      • 2017-11-29
      相关资源
      最近更新 更多