【发布时间】:2017-10-06 21:46:53
【问题描述】:
我正在构建一个包含UITableViewController 的应用程序。在 VC 中,我放置了一些用于接受用户输入的文本字段。我使用表格视图控制器,因为当键盘出现时更容易向上移动视图。请参阅here 了解更多信息。
当我通过观看 thenewboston 的一个视频来学习如何在用户点击其他地方时隐藏键盘时,有人告诉我要使用
view.endEditing(true)
在touchesBegan 方法中。
我还发现了如何使用滑动手势识别器,以便在用户向下滑动时隐藏键盘。
但是,所有这些都使用普通的视图控制器。当我使用表格视图控制器执行此操作时,没有任何效果! touchesBegan 和 UISwipeGestureRecognizer 都不起作用!当我向下滑动或点击某处时,键盘就停留在那里!
为什么会发生这种情况?如何在表格视图控制器中隐藏键盘?
编辑:
相关代码都在UITableViewController的子类中:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
view.endEditing(true)
}
@IBAction func swipedDown(sender: UISwipeGestureRecognizer) { // This is connected to a swipe gesture recogniser
view.endEditing(true)
}
我想这就是你通常的做法,对吧?我在一个普通的视图控制器中试过这个并且它有效。它只是在表格视图控制器中不起作用。
【问题讨论】:
-
用相关代码更新您的问题。
-
@maddy 已编辑。我认为这就是所有相关代码。
-
是否调用了这两个函数中的任何一个?
-
@maddy 不,他们没有被调用。这真的很奇怪。
-
并非如此。表格视图可能会阻止手势工作。