我有一个UITextField的视图,它在它下面的UITableView上执行一些搜索操作。
问题是,当我设置一个轻击手势以在UITextField外面的触摸上关闭键盘时,它似乎取消了我的TableView单元格的didSelect方法。
以下是我目前在viewDidLoad中使用的代码:
let tapRecognizer = UITapGestureRecognizer(target: self, action: "handleSingleTap:")
tapRecognizer.numberOfTapsRequired = 1
self.view.addGestureRecognizer(tapRecognizer)
func handleSingleTap(recognizer: UITapGestureRecognizer) {
self.view.endEditing(true)
}
如何设置它以便UITextField外部的触摸关闭键盘,但仍允许我选择TableView单元格?
答案 0 :(得分:1)
答案 1 :(得分:0)
您需要实现手势识别器委托。
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,shouldReceiveTouch touch: UITouch) -> Bool
{
if ([touch.view isDescendantOfView:yourTableView]) {
return false
}
return true
}
这样,它不会干扰您对表视图的触摸,仍然允许您选择表格视图。
答案 2 :(得分:0)
不鼓励使用轻敲手势。当它覆盖我的自定义按钮时,我遇到了这个问题。我用iOS XCDFormInputAccessoryView
解决了这个问题。它对我很有用。
答案 3 :(得分:0)
将cancelsTouchesInView
的{{1}}属性设置为true。
UITapGestureRecognizer