UISearchcontroller 搜索栏委托不工作
UISearchcontroller searchbar delegate not working
class PlaceSelectorViewController: UIViewController, GMSAutocompleteResultsViewControllerDelegate, UISearchBarDelegate {
我添加了搜索栏代理
searchController?.searchBar.delegate = self
并且我已经设置了委托。
但是方法
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
stopHighlight()
}
不会发生。
Delegate 已正确设置,stopHighlight()
是一个真正的函数
在 viewdidload
方法中创建 searchbar
的委托。
override func viewDidLoad() {
super.viewDidLoad()
searchBarCustom.delegate = self
}
或者您可以在情节提要中将其设置为
-因此代表将调用为
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
}
就我而言,这是一个拼写错误。
确保您的@IBOutlet 名称与您的代表名称相似。
例如,
@IBOutlet 弱变量 SearchBar: UISearchBar!
在 viewDidLoad() 中设置委托:
override func viewDidLoad() {
super.viewDidLoad()
SearchBar.delegate = self
class PlaceSelectorViewController: UIViewController, GMSAutocompleteResultsViewControllerDelegate, UISearchBarDelegate {
我添加了搜索栏代理
searchController?.searchBar.delegate = self
并且我已经设置了委托。
但是方法
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
stopHighlight()
}
不会发生。
Delegate 已正确设置,stopHighlight()
是一个真正的函数
在 viewdidload
方法中创建 searchbar
的委托。
override func viewDidLoad() {
super.viewDidLoad()
searchBarCustom.delegate = self
}
或者您可以在情节提要中将其设置为
-因此代表将调用为
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
}
就我而言,这是一个拼写错误。
确保您的@IBOutlet 名称与您的代表名称相似。
例如, @IBOutlet 弱变量 SearchBar: UISearchBar!
在 viewDidLoad() 中设置委托:
override func viewDidLoad() {
super.viewDidLoad()
SearchBar.delegate = self