gpt4 book ai didi

xcode - 我应该在哪里放置代码来自定义 UISearchBar 中的取消按钮?

转载 作者:可可西里 更新时间:2023-10-31 23:44:29 26 4
gpt4 key购买 nike

我试图更改使用 UISearchController(iOS 8 及更高版本)实现的 UISearchBar 中的取消按钮颜色。这是我使用的代码:

if self.resultSearchController.active {
for subView in self.resultSearchController.searchBar.subviews {
for subsubView in subView.subviews {
if subsubView.isKindOfClass(UIButton) {
subsubView.tintColor = UIColor.whiteColor()
}
}
}
}

如果我将它粘贴到 viewDidLoad 中,它不起作用,因为我认为取消按钮仅在 SearchController 变为事件时初始化。

如果我在 viewDidLayoutSubviews 中粘贴代码,一切都很好,但我不确定它是正确的方法。

那么,我应该把这段代码放在 TableViewController 的什么地方?

另外,我不明白,我如何在我的 TableViewController 中收到 SearchController 变为非事件状态的通知。换句话说,我应该把这样的代码放在哪里:

if self.resultSearchController.active == false {
//Do something
}

最佳答案

首先你应该插入委托(delegate)方法:-

 class HomeViewController: UIViewController,UISearchResultsUpdating, UISearchBarDelegate {

var searchController: UISearchController!

override func viewDidLoad() {
super.viewDidLoad()
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search here..."
searchController.searchBar.delegate = self
searchController.searchBar.sizeToFit()
searchController.hidesNavigationBarDuringPresentation = true
tableView.tableHeaderView = searchController.searchBar
searchController.searchBar.tintColor = UIColor.whiteColor()

}

func searchBarTextDidBeginEditing(searchBar: UISearchBar) {

}

func searchBarCancelButtonClicked(searchBar: UISearchBar) {

}

func searchBarSearchButtonClicked(searchBar: UISearchBar) {

}

func updateSearchResultsForSearchController(searchController: UISearchController) {

}


}

然后使用委托(delegate)方法并更改取消按钮颜色和您想要的东西

关于xcode - 我应该在哪里放置代码来自定义 UISearchBar 中的取消按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33280965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com