我有一个手势识别器可以关闭我的键盘,但这会妨碍 tableView didSelectAtRow 因为 tableView 无法识别点击,除非它是长按。当我在模拟器中运行它并轻轻点击 tableViewCell 时,它注册为点击以关闭键盘,而不是点击 tableView。但是,如果我在模拟器中点击并按住一段时间,它会关闭键盘并注册为 tableView 的 didSelectAtRow。这类似于问题UITableView clicked and no cell selected, but long press trigger cell selected,但我不知道如何使用Objective-C。我想知道是否有人对我的问题有解决方法。我在想是否有一种方法可以识别我在 tableView 中点击了,那么gestureRecognizer 将被取消,但我不知道如何继续。
这是我到目前为止所拥有的:
override func viewDidLoad() {
super.viewDidLoad()
searchBar.delegate = self
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(AddressVC.hideKeyboard))
tapGesture.cancelsTouchesInView = false
//searchResultsTableView.addGestureRecognizer(tapGesture)
self.view.addGestureRecognizer(tapGesture)
}
func hideKeyboard()
{
self.view.endEditing(true)
}