出于某种原因,当我点击UISearchBar中的圆圈x取消按钮时, searchBarCancelButtonClicked 事件未触发,它在swift 2项目中工作,但不在此快速3项目中。
我现在正在扩展我的视图控制器而不是内联类方式,但我相信这是有效的,因为 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)
}
}
}
未记录打印件且未调用该功能。我错过了一些傻事吗?
答案 0 :(得分:1)
也许您像我一样错过了一些愚蠢的事情,“ x圆圈”实际上并不是取消按钮,并且我也认为,默认情况下,取消按钮也处于禁用状态,您可以通过情节提要在菜单项的属性上将其激活searhBar或您可以通过以下方式进行编程:
searchBar.showsCancelButton = true
那之后,该方法应该起作用。
答案 1 :(得分:0)
如果仍然有人在寻找选项,该如何操作“ X”按钮。使用以下可用的方法
UISearchBarDelegate
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
{
if searchText.count == 0
{ // Hide content
}
}
注意:它不是cannel按钮,而是明文按钮,在searchBar中输入内容后即可看到