本文介绍了UISearchcontroller搜索栏委托不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
class PlaceSelectorViewController: UIViewController, GMSAutocompleteResultsViewControllerDelegate, UISearchBarDelegate {
我包括了搜索栏委托
searchController?.searchBar.delegate = self
我已经设置了代表。
但是方法
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
stopHighlight()
}
不会发生。
Delegate设置正确,并且 stopHighlight()
是实函数
Delegate has set properly and stopHighlight()
is a real function
推荐答案
使用 viewdidload
方法使 searchbar
的委托。 / p>
Make delegate of searchbar
in viewdidload
method.
override func viewDidLoad() {
super.viewDidLoad()
searchBarCustom.delegate = self
}
,也可以在情节提要中将其设置为
or you can set it in storyboard as
-因此,代表将呼叫为
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
print("searchBarCancelButtonClicked")
}
编辑:
对于 UISearchController
var searchController: UISearchController!
func configureSearchController() {
// Initialize and perform a minimum configuration to the search controller.
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search here..."
searchController.searchBar.delegate = self
searchController.searchBar.sizeToFit()
// Place the search bar view to the tableview headerview.
tblSearchResults.tableHeaderView = searchController.searchBar
}
这篇关于UISearchcontroller搜索栏委托不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!