点击搜索按钮后,在搜索栏中激活取消按钮

Ari*_*ang 4 uisearchbar ios swift

我有搜索栏和取消按钮,点击搜索按钮后,显示结果但取消按钮无效,我需要点击两次才能使其工作并返回初始结果.如何在搜索结果出现后激活取消按钮?

这是我的代码

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()
}
Run Code Online (Sandbox Code Playgroud)

我已经实现了UISearchBarDelegatesearchBar.delegate = self我的viewDidLoad

And*_*Inc 5

将代码设置为在搜索栏的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
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

快乐的编码......