模式视图控制器关闭后iOS 8键盘关闭延迟

Posted

技术标签:

【中文标题】模式视图控制器关闭后iOS 8键盘关闭延迟【英文标题】:iOS 8 Keyboard Dismissed delay after modal view controller is dismissed 【发布时间】:2014-12-04 23:49:12 【问题描述】:

ios 8+ 中,我注意到如果您在呈现的视图控制器中有一个当前为 firstResponder 的文本字段,则当视图控制器被解除时,键盘会在被解除之前挂起大约 1 秒钟。

iOS 8.0 和 8.1 以及 not 7.1 都会出现这种情况。

有什么想法吗?

【问题讨论】:

【参考方案1】:

据此,在 iOS 8 中,视图似乎在真正离开屏幕之前不会放弃第一响应者状态

http://prod.lists.apple.com/archives/cocoa-dev/2014/Sep/msg00391.html

我们的解决方法是在-viewWillDisappear 中调用[self.view endEditing:YES]

【讨论】:

当我尝试这个时,键盘开始关闭,但在视图控制器由于某种原因关闭之前又跳回...... iOS 9 中仍然存在 - view.endEditing(true)【参考方案2】:

适用于 Swift 3/4

override func viewWillDisappear(_ animated: Bool) 
    self.view.endEditing(true)

此外,如果它没有辞职,请尝试在您尝试结束输入的文本字段上调用 ​​resignFirstResponder

override func viewWillDisappear(_ animated: Bool) 
    textField.resignFirstResponder()

【讨论】:

别忘了给super.viewWillDisappear(animated)打电话。 @TimVermeulen 是的!很棒的评论。如果 Ricks 将此添加到他的答案中,它将得到我的支持。

以上是关于模式视图控制器关闭后iOS 8键盘关闭延迟的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 – 在设置关键窗口或关闭并立即呈现另一个视图控制器后快速呈现视图控制器时出现故障

关闭模式视图控制器后如何正确对齐 rightBarButtonItem?

在 IOS 6.0 中:底部工具栏中的 UIBarButton 在呈现和关闭模式视图控制器后消失

关闭模态视图控制器后呈现不同的视图控制器

关闭模式视图控制器后,框架不反映自动布局约束

消除关闭视图控制器和呈现新视图控制器之间的延迟