Swift 2.0 - UISearchBar 取消按钮不删除 searchBar 内容

Posted

技术标签:

【中文标题】Swift 2.0 - UISearchBar 取消按钮不删除 searchBar 内容【英文标题】:Swift 2.0 - UISearchBar cancel button not deleting searchBar content 【发布时间】:2015-09-24 22:58:58 【问题描述】:

我有一个带有 searchBar 的 tableView。具有搜索功能的表格工作正常。我只是遇到了 searchBar 的“取消”按钮的意外行为。

问题是在按“取消”停止过滤后,所有项目都应该再次显示在 tableView 中。当我先按搜索文本字段中的浅灰色“x”删除按钮,然后按“取消”按钮关闭键盘时,这是有效的。

如果我只按“取消”而不按“删除”,小键盘将关闭,搜索栏中的文本将被删除,但表格仍会显示搜索结果。

是否有无需手动按下即可调用搜索栏删除按钮的功能?

我试图这样做,但它不起作用:

 func searchBarCancelButtonClicked(searchBar: UISearchBar) 
    // called when cancel button pressed
    self.searchBar.text = reset
    self.view.endEditing(true)
    tableView.reloadData()
 

有人可以帮忙吗?

【问题讨论】:

我认为您可以添加一个默认的取消按钮,它已经可以处理这个问题。类似searchBar.showCancelButton 【参考方案1】:

您可以像这样重置搜索栏:

func searchBarCancelButtonClicked(_ searchBar: UISearchBar) 
    searchBar.text = nil
    searchBar.showsCancelButton = false
    searchBar.endEditing(true)
    self.tableView.reloadData()

【讨论】:

以上是关于Swift 2.0 - UISearchBar 取消按钮不删除 searchBar 内容的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UiSearchBar 的背景颜色更改为黑色-SWIFT

UISearchBar:传递数据;单击的标题与 ListViewController - Swift 中显示的数据不对应

更改 UISearchBar 中的 UITextField 高度 - Swift 3

在 Swift 4 中自定义 UISearchBar

NavigationItem + UISearchBar 与 Swift

Swift:UISearchBar:单击搜索按钮时获取文本