【发布时间】:2016-02-20 07:20:58
【问题描述】:
我有一个 ViewController,它有 textSearchTableView: UITableView 和 searchBar: UISearchBar
我添加了UITapGestureRecognizer 来关闭键盘
override func viewDidLoad() {
// ...
self.tap = UITapGestureRecognizer(target: self, action: "DissmissKeyboard")
self.tap.delegate = self
self.view.addGestureRecognizer(self.tap)
// ...
}
func DissmissKeyboard()
{
view.endEditing(true)
}
我已添加此功能以防止在选择单元格后破坏(didSelectRowAtIndexPath)功能
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if touch.view.isDescendantOfView(self.textSearchTableView) {
return false
}
return true
}
但问题是:当键盘启用并且我想关闭它时,
如果我点击 textSearchTableView,(didSelectRowAtIndexPath) 将运行
如果我在不调用 (didSelectRowAtIndexPath) 的情况下单击 tableView,如何关闭键盘?我也不想破坏这个功能
我希望我能很好地描述问题 非常感谢
【问题讨论】:
-
在您的情况下,如果用户单击屏幕上的任何位置,关闭键盘是个坏主意。用户会点击哪里?它必须是表的行之一,因此是您的问题。我会在键盘上放一个完成按钮并将 resiginFirstResponder 附加到它。
标签: ios swift uitableview keyboard uitapgesturerecognizer