gpt4 book ai didi

iphone - 我可以连接 UISearchBar 的清除按钮吗?

转载 作者:IT老高 更新时间:2023-10-28 11:48:16 24 4
gpt4 key购买 nike

我的界面中有一个 UISearchBar,我想自定义在输入一些文本后出现在搜索栏中的小清除按钮的行为(它是一个带有十字的灰色小圆圈,出现在搜索字段的右侧)。

基本上,我希望它不仅可以清除搜索栏的文本(这是默认实现),还可以从我的界面中清除一些其他内容,但调用我自己的方法之一。

我在 UISearchBar 类或 UISearchBarDelegate 协议(protocol)的文档中找不到任何内容 - 您似乎无法直接访问此行为。

我确实注意到的一件事是文档解释了委托(delegate)方法:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;

在点击清除按钮后调用。

我最初在该方法中编写了一些代码来检查搜索栏的文本属性,如果它是空的,那么它已被清除并做我所有的其他事情。

这虽然有两个问题:

首先,由于某种原因,我无法理解,即使我在方法结束时告诉搜索栏 resignFirstResponder,但在某处将其设置回成为 FirstResponder。真烦人……

其次,如果用户不使用清除按钮,而只是使用键盘上的删除按钮删除栏中的文本,则会触发此方法并且他们的搜索结果会消失。不好。

任何正确方向的建议或指示都会很棒!

谢谢!

最佳答案

为这个问题找到了更好的解决方案:)

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
if ([searchText length] == 0) {
[self performSelector:@selector(hideKeyboardWithSearchBar:) withObject:searchBar afterDelay:0];
}
}

- (void)hideKeyboardWithSearchBar:(UISearchBar *)searchBar{
[searchBar resignFirstResponder];
}

关于iphone - 我可以连接 UISearchBar 的清除按钮吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/925221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com