我在我的界面中使用了UISearchBar并想要自定义搜索栏中输入文本后出现的小清除按钮(它是一个带有交叉符号的小灰色圆圈,出现在搜索栏右侧)的行为。
基本上,我想让它不仅清除搜索栏中的文本(这是默认实现),还要通过调用自己的方法来清除我的界面中的其他一些内容。
我在UISearchBar类或UISearchBarDelegate协议的文档中找不到任何有关此行为的信息 - 看起来似乎无法直接访问此行为。
唯一注意到的一件事是文档解释了委托方法:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;
在清除按钮被点击后调用。
最初我在这个方法中编写了一些代码,检查搜索栏的文本属性,如果为空,则已被清除,并完成所有其他操作。
但是有两个问题:
首先,出于某种无法理解的原因,即使我告诉搜索栏在我的方法结束时resignFirstResponder,但某些地方还是会将其设置回becomeFirstResponder。真的很烦人...
其次,如果用户不使用清除按钮,而只是使用键盘上的删除按钮删除栏中的文本,那么这个方法就会触发,他们的搜索结果也会消失。 不好。
有任何建议或指针都将非常感谢!
谢谢!