我的界面中有一个 UISearchBar,我想自定义输入一些文本后出现在搜索栏中的小清除按钮的行为(它是一个带有十字的灰色小圆圈,出现在右侧搜索字段的一侧)。
基本上,我希望它不仅清除搜索栏的文本(这是默认实现),而且还清除我的界面中的一些其他内容,但调用我自己的方法之一。
我在文档中找不到 UISearchBar 类或 UISearchBarDelegate 协议的任何内容 - 看起来您无法直接访问此行为。
我确实注意到的一件事是文档解释了委托方法:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;
在点击清除按钮后调用。
我最初在该方法中编写了一些代码来检查搜索栏的文本属性,如果它是空的,那么它已经被清除并做我所有的其他事情。
这虽然有两个问题:
首先,由于某种原因,我无法理解,即使我告诉搜索栏在我的方法结束时 resignFirstResponder,某些地方正在将其设置回 becomeFirstResponder。真的很烦...
其次,如果用户不使用清除按钮,而只是使用键盘上的删除按钮删除栏中的文本,则此方法将被触发并且他们的搜索结果消失。不好。
任何朝着正确方向的建议或指示都会很棒!
谢谢!