UISearchcontroller 取消按钮不起作用

UISearchcontroller Cancel button not working

class PlaceSelectorViewController: UIViewController, GMSAutocompleteResultsViewControllerDelegate, UISearchBarDelegate, UISearchControllerDelegate {

我的 class

中有 UISearchBarDelegate
searchController?.searchBar.delegate = self

并且我已将委托设置为 Self。

func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
    stopHighlight()
}

但是这个委托调用不起作用

您的 UISearchBar 需要一个 outleet(假设您正在使用故事板,这真的很简单,只需通过 Assistant Editor 拖放即可)。这就是您要将委托添加到的内容。如果您以编程方式构建,那么该变量就是将要分配给委托的变量。

这是构建故事板的示例代码

@IBOutlet weak var searchBar: UISearchBar!(你必须看到这个右边有一个实心圆圈,否则 Storyboard 和这个 之间没有 link出口)

...

override func viewDidLoad() { super.viewDidLoad() searchBar.delegate = self }