我应该在关闭视图之前关闭键盘吗?

Posted

技术标签:

【中文标题】我应该在关闭视图之前关闭键盘吗?【英文标题】:Should I dismiss keyboard before dismissing the view? 【发布时间】:2015-06-18 13:31:48 【问题描述】:

我有两个UIViewControllers,以模态方式呈现在另一个之上。第一个控制器是横向的,模态视图是纵向的。

当关闭模态视图时,视图会显示动画以显示下面的横向视图。如果此时键盘在模态视图上可见,它会突然将自己附加到屏幕的左侧或右侧,以匹配即将激活的 viewController 的方向。

有没有办法让键盘以与消失的 viewController 相同的方向消失?或者我应该在 关闭模态视图控制器之前关闭键盘吗?在这种情况下,最好的方法是什么?

当用户单击“关闭”时,我确实有一个动作。我可以在那里检查是否有任何对象是 firstResponder,并在关闭之前启动一个约 0.4 秒的计时器。但它显然会产生一种感觉不那么自然的延迟。我更喜欢让键盘保持与关闭视图相同的方向。

这正在发生:

【问题讨论】:

【参考方案1】:

我认为最好的做法是在关闭模态 ViewController 之前关闭键盘。键盘显示在您的内容上,应先移除,然后再移除视图层次结构中的其他项目。

【讨论】:

啊,是的。我想我必须“暂停”模式视图的解除以等待键盘退出视图,但只需在 [self dismiss...]; 之前添加 [textField resignFirstResponder]; 就可以了。它现在在解雇之前解雇。

以上是关于我应该在关闭视图之前关闭键盘吗?的主要内容,如果未能解决你的问题,请参考以下文章

结合点击关闭键盘、键盘避免视图和提交按钮

在 SwiftUI 中显示键盘上方的视图 [关闭]

UIScrollView 在键盘关闭时停止滚动

在不添加完成键的情况下关闭数字键盘式键盘

我应该在学习 C++ 之前学习 C 吗? [关闭]

我应该将 Flutter Web 用于不应该在夏季之前投入生产的网站项目吗? [关闭]