[英]Make Cancel button in search bar active after search button tapped
我有搜索欄和取消按鈕,點擊搜索按鈕后,顯示結果但取消按鈕無效,我需要點擊兩次才能使其工作並返回初始結果。 如何在搜索結果出現后激活取消按鈕?
這是我的代碼
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
將代碼設置為在搜索欄的searchBarSearchButtonClicked
委托方法中啟用取消按鈕這樣,在單擊搜索欄后,仍將啟用取消按鈕。
所以完整的代碼片段將是
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.endEditing(true)
searchBar.setShowsCancelButton(true, animated: true)
print(searchBar.text)
for view in searchBar.subviews {
for subview in view.subviews {
if let button = subview as? UIButton {
button.enabled = true
}
}
}
}
快樂的編碼......
根據我的經驗,如果你執行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
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.