UISearchBar searchBarCancelButton没有使用Swift 3调用

时间:2016-10-24 23:46:41

标签: ios swift swift3 uisearchbar

出于某种原因,当我点击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)
        }

    }
}

未记录打印件且未调用该功能。我错过了一些傻事吗?

2 个答案:

答案 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中输入内容后即可看到