出于某种原因,当我单击 UISearchBar 中的 circle x 取消按钮时,searchBarCancelButtonClicked 事件没有触发,它在 swift 2 项目中有效,但在这个 swift 3 项目中无效。
我现在正在扩展我的 View Controller 而不是内联类方式,但我相信它正在工作,因为 searchBarSearchButtonClicked 事件确实有效。这是我目前所拥有的:
extension MyViewController: UISearchBarDelegate {
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
print("here?")
searchBar.resignFirstResponder()
handleCancelSearch()
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder()
if let searchText = searchBar.text {
performSearchUsing(term:searchText)
}
}
}
打印没有被记录并且函数没有被调用。我错过了什么愚蠢的东西吗?
最佳答案
也许你像我一样错过了一些愚蠢的东西,“circle x”实际上并不是取消按钮,我也这么认为,默认情况下取消按钮是禁用的,你可以通过 Storyboard在searchBar 或者您可以通过以下方式以编程方式执行此操作:
searchBar.showsCancelButton = true
之后,该方法应该可以工作。
关于ios - UISearchBar searchBarCancelButtonClicked 未使用 Swift 3 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40229276/