无法在 Interface Builder 中关闭键盘,因为视图控制器不会显示 doneEditing:

Posted

技术标签:

【中文标题】无法在 Interface Builder 中关闭键盘,因为视图控制器不会显示 doneEditing:【英文标题】:Can't dismiss keyboard in Interface Builder because view controller won't show doneEditing: 【发布时间】:2014-05-21 23:30:44 【问题描述】:

有一个 AddEntryViewController(模态 segue),并希望通过从 textField 到 View Controller 的控制单击来关闭键盘。

问题是,当我到达 ViewController 时,在 HUD 中没有显示 doneEditing:,它只显示不同的 segue 选择。

为什么要这样做,如何让它在 HUD 中显示正确的信息?

【问题讨论】:

【参考方案1】:

假设您在 ios 中使用 UITextField,它不会调用名为 doneEditing 的操作。

事实上,它不会发送任何动作,也不会触发 segue。因此,Interface Builder 假定您希望创建从当前视图控制器到另一个视图控制器的 segue。

您必须通过实现 textfieldShouldReturn 委托方法来关闭文本字段的键盘。在其中,您可以要求文本字段放弃其第一响应者状态,这将使键盘消失。这个截屏视频解释了更多:http://pinkstone.co.uk/how-to-dismiss-the-keyboard-from-a-uitextfield-in-ios/

如果您只想在视图关闭后立即关闭键盘,请在 viewWillDisappear 中实现:

- (void)viewWillDisappear:(BOOL)animated 

    [self.yourTextfield resignFirstResponder];
    [super viewWillDisappear:animated];

【讨论】:

以上是关于无法在 Interface Builder 中关闭键盘,因为视图控制器不会显示 doneEditing:的主要内容,如果未能解决你的问题,请参考以下文章

防止对话框在 Flutter 中关闭外部触摸

无法在 SpringBootApplication 中关闭 SecurityConfig

Kivy:从另一个弹出窗口中关闭一个弹出窗口

无法在 Visual Studio Code 中关闭代码建议

在 xamarin 表单中关闭应用程序时无法显示通知

在 watchOS 2 中关闭屏幕时无法获取加速度计和心率数据