OGeek|极客世界-中国程序员成长平台

标题: ios - 仅使用 UISearchBar 时如何触发 "cancel search"? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:51
标题: ios - 仅使用 UISearchBar 时如何触发 "cancel search"?

我有一个表 View ,其标题显示 UISegmentedControl和一个 UISearchBar .请记住,我没有使用 UISearchController .当我搜索了当前列表并切换了不同的段时,我想取消搜索并使用新数据重新加载列表。

目前我正在手动清除搜索文本、动画取消按钮和隐藏键盘。但我也在我的 searchBarCancelButtonClicked 中这样做方法。

仅使用 UISearchBar 时,有没有办法以编程方式取消搜索(清除文本、隐藏键盘和隐藏取消按钮)?



Best Answer-推荐答案


不,没有办法自动清除文本字段、隐藏键盘等。尽管它看起来很常见,但每个开发人员都可以决定如何实现它。 Apple 只提供了在用户点击取消按钮时捕捉事件的能力。

通常,我会在 View Controller 中创建一个本地函数,例如:

-(void)clearSearchBarUISearchBar *)searchBar {
    searchBar.Text = @"";
    [searchBar resignFirstResponder];
    ...
 }

然后,在 searchBarCancelButtonClicked: (假设您已经为搜索栏创建了一个 IBOutlet),您可以这样做:
-(void)searchBarCancelButtonClickedUISearchBar *)searchBar {
    [self clearSearchBar:self.searchBar];
}

您也可以调用 clearSearchBar:您需要清除它的其他任何地方。

显然,这里可以使用类别来避免重复代码。

您也可以调用 searchBarCancelButtonClicked:像这样:
[self.searchBar.delegate searchBarCancelButtonClicked:self.searchBar];

关于ios - 仅使用 UISearchBar 时如何触发 "cancel search"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31995119/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4