我有搜索栏和取消按钮,点击搜索按钮后,显示结果但取消按钮无效,我需要点击两次使其工作并返回初始结果。如何在搜索结果出现后激活取消按钮?
这是我的代码
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.endEditing(true)
searchBar.setShowsCancelButton(true, animated: true)
filterContentForSearchText(searchBar.text!, scope: "All")
print(searchBar.text)
}
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
searchBar.text = ""
searchBar.resignFirstResponder()
searchBar.setShowsCancelButton(false, animated: true)
database = dataUtuh
self.collectionView.reloadData()
}
我已在viewDidLoad
上实施UISearchBarDelegate
和searchBar.delegate = self
答案 0 :(得分:5)
将代码设置为在搜索栏的0 6.95272e-310
6.95272e-310 6.93208e-310
1.52888e-314 2.07341e-317
2.07271e-317 6.95272e-310
委托方法中启用取消按钮
以这种方式点击搜索栏后,仍然会启用取消按钮。
所以完整的代码段将是
searchBarSearchButtonClicked
快乐的编码......
答案 1 :(得分:4)
根据我的经验,如果您执行searchBar.endEditing(true)
,则取消按钮被禁用,请尝试在此之后添加此项以查看其是否正常工作,我也在我的项目中使用它:
func enableCancelButton (searchBar : UISearchBar) {
for view1 in searchBar.subviews {
for view2 in view1.subviews {
if view2.isKindOfClass(UIButton) {
let button = view2 as! UIButton
button.enabled = true
button.userInteractionEnabled = true
}
}
}
}