ios - 如何以编程方式按下 SearchBar 的取消按钮或将其返回到初始状态?

标签 ios swift uisearchbar searchbar uisearchbardelegate

我需要的是在点击“搜索”按钮后,searchBar 返回到其初始状态,这样我就可以一键访问任何 UI 元素。因为目前我需要在屏幕上的任意位置点击一次才能与其他 UI 元素进行交互。 我已经尝试过 searchBar.resignFirstResponder() 和 searchBar.endEditing(true) 以及其他 UIView.endEditing,但它不起作用。感谢您的提前!

例如,

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
    //search products, reload table and then:

    searchBar.resignFirstResponder()
}

更新:找到解决方案! searchController.isActive = false

最佳答案

如果我没理解错的话,您需要在单击Cancel 按钮后隐藏它。如果是,请试试这个。

func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
    searchBar.showsCancelButton = true
}

func searchBarCancelButtonClicked(searchBar: UISearchBar) {
    searchBar.text = nil
    searchBar.showsCancelButton = false
    searchBar.endEditing(true)
}

关于ios - 如何以编程方式按下 SearchBar 的取消按钮或将其返回到初始状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52843540/

相关文章:

ios - 机器人与 TestFlight 集成

ios - 现在如何在 RealmSwift 4.0 更新中使用枚举?

ios - 在 Playground 中编译正常的编译器错误

ios - 如何在 Swift 中将 xib 的垂直长度设置为代码

iphone - 在 UITextView 中创建一个 UIbutton 和 UIImageview

ios - 在初始 View Controller 实例化时以编程方式绘制 ImageView 边界

ios - 尝试理解委托(delegate)

ios - Json 数据的 Tableview SearchBar

iphone - 粘性搜索栏和部分标题行为类似于 native 联系人应用程序

ios - UIView 宽度在第一次启动时显示不同