如何在仅使用UISearchBar时触发“取消搜索”?
我有一个表头,显示一个UISegmentedControl
和一个UISearchBar
。 请记住,我没有使用UISearchController
。 当我搜索了当前列表并且切换了另一个段时,我想要取消搜索并使用新数据重新加载列表。
目前,我正在手动清除搜索文本,动画取消按钮并隐藏键盘。 但我也在searchBarCancelButtonClicked
方法中执行此searchBarCancelButtonClicked
。
有没有办法通过编程方式取消搜索(清除文本,隐藏键盘和隐藏取消按钮)时,只使用UISearchBar?
不,无法自动清除文本字段,隐藏键盘等。尽管看起来像通用功能,但每个开发人员都可以决定如何实现它。 当用户点击取消按钮时,Apple只提供捕捉事件的能力。
通常,我将在视图控制器中创建一个本地函数,如:
-(void)clearSearchBar:(UISearchBar *)searchBar {
searchBar.Text = @"";
[searchBar resignFirstResponder];
...
}
然后,在searchBarCancelButtonClicked:
假设你已经为搜索栏创建了一个IBOutlet),你可以这样做:
-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
[self clearSearchBar:self.searchBar];
}
然后,您也可以调用clearSearchBar:
您需要的任何地方清除它。
显然,这里有足够的空间来使用类别来避免重复代码。
你也可以调用searchBarCancelButtonClicked:
像这样:
[self.searchBar.delegate searchBarCancelButtonClicked:self.searchBar];
链接地址: http://www.djcxy.com/p/44247.html
上一篇: How to trigger the "cancel search" when using only a UISearchBar?