我有一个表 View ,其标题显示 UISegmentedControl 和一个 UISearchBar .请记住,我没有使用 UISearchController .当我搜索了当前列表并切换了不同的段时,我想取消搜索并使用新数据重新加载列表。
目前我正在手动清除搜索文本、动画取消按钮和隐藏键盘。但我也在我的 searchBarCancelButtonClicked 中这样做方法。
仅使用 UISearchBar 时,有没有办法以编程方式取消搜索(清除文本、隐藏键盘和隐藏取消按钮)?
Best Answer-推荐答案 strong>
不,没有办法自动清除文本字段、隐藏键盘等。尽管它看起来很常见,但每个开发人员都可以决定如何实现它。 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/
|