ios – 点击搜索按钮后,搜索栏中的取消按钮处于活动状态

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

这是我的代码

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

最佳答案
根据我的经验,如果你执行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
            }
        }
    }
}

转载注明原文:ios – 点击搜索按钮后,搜索栏中的取消按钮处于活动状态 - 代码日志