我已经使用UISearchBarDelegate在表视图中搜索了项目。 我已经像这样将搜索栏变量的委托设置为self
searchBar.delegate = self
touchesBegan功能我曾经用来隐藏键盘。
override func touchesBegan(_ touches: Set<UITouch>,
with event: UIEvent?) {
self.view.endEditing(true)
}
当我触摸搜索栏以外的任何地方时,都不会触发。虽然同样的事情可以与UITextField一起正常工作。
答案 0 :(得分:1)
也许尝试:
searchBar.endEditing(true)
甚至更好:
searchBar.resignFirstResponder()
编辑:
现在,您已经说明了问题所在,这是您可以做的:
func searchBarTextDidBeginEditing(sender: UISearchBar) {
self.tableView.userInteractionEnabled=false
}
然后在searchBarTextDidEndEditing上重新启用。
否则,您实际上可以将手势识别器这样添加到tableView中:
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
tableView.addGestureRecognizer(tapGesture)
答案 1 :(得分:0)
(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar此委托方法将帮助您执行上述任务。
a1.tobytes() == a2.tobytes()
# False