我用这库为SEARCHTEXT现场UITapGestureRecognizer在Swift中打破SearchField类中的UITableView didSelectRowAtIndexPath?
https://github.com/apasccon/SearchTextField
这里是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: Selector("dismissKeyboard")))
}
func dismissKeyboard()
{
ClientList.resignFirstResponder()
self.view.endEditing(true)
}
关闭键盘的工作,但didSelectRowAtIndexPath方法是没有得到调用,所以我不能够选择任何东西
部分解决我做:
func hideKeyboard(gestureRecognizer: UIGestureRecognizer) {
let point = gestureRecognizer.locationInView(ClientList.tableView)
let indexPath = ClientList.tableView!.indexPathForRowAtPoint(point)
if indexPath != nil {
return
}
if ClientList.becomeFirstResponder() {
ClientList.resignFirstResponder()
}
}
但现在的问题是,我有其他列表也一样,我怎么能实现对其他列表?
只需将函数更新为** Swift 3 ** 'func gestureRecognizer(_ gestureRecognizer:UIGestureRecognizer,shouldReceive touch:UITouch) - > Bool {0}如果touch.view != nil && touch.view!.isDescendant(of:self.tableView){ return false } return true }'' –