在自定义容器视图控制器中调用 endEditing 会隐藏键盘但不会更改键盘响应器

Posted

技术标签:

【中文标题】在自定义容器视图控制器中调用 endEditing 会隐藏键盘但不会更改键盘响应器【英文标题】:Calling endEditing in custom container view controller hides keyboard but doesn't change keyboard responder 【发布时间】:2014-04-09 10:54:14 【问题描述】:

在我的自定义容器视图控制器中,当某些事情发生时,我需要隐藏键盘。

因为我不知道第一响应者是谁,所以我只是强制关闭它,如下所示:

for (UIViewController *child in self.childViewControllers) 
        [child.view endEditing:YES];

[self.view endEditing:YES];

键盘隐藏了——这很好——但是当我点击不同的文本字段时——在调用endEditing 之前作为第一响应者的前一个文本字段仍然获得键盘输入。

我在这里遗漏了什么吗?它不应该辞去第一响应者的身份吗?被点击的文本字段不应该成为第一响应者吗?

【问题讨论】:

【参考方案1】:

我认为你应该 resignFirstResponder 来查看该视图。

【讨论】:

以上是关于在自定义容器视图控制器中调用 endEditing 会隐藏键盘但不会更改键盘响应器的主要内容,如果未能解决你的问题,请参考以下文章

在自定义容器视图中旋转时 AutoLayout 不会调整视图大小?

在自定义容器控制器中旋转后视图未调整大小

需要在自定义 UITextField 中调用 shouldChangeCharactersInRange 并调用视图控制器函数通知更新

在自定义模式解除转换后,第一个视图控制器的生命周期方法不会被调用

如何在自定义键盘中关闭键盘?

iOS 7:自定义容器视图控制器和内容插入