在 UISearchBar 中按“x”时关闭键盘
Posted
技术标签:
【中文标题】在 UISearchBar 中按“x”时关闭键盘【英文标题】:Dismiss keyboard when pressing "x" in UISearchBar 【发布时间】:2014-03-04 15:57:29 【问题描述】:如果我将辞职代码放在我的 if 条件中,键盘不会辞职,如果我评论 if 条件,我的键盘就会辞职。
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
if (searchText.length == 0)
[searchBar resignFirstResponder];
我想在用户按下“x”按钮时退出键盘,即 UISearchBar 文本为空时。有没有办法做到这一点?
【问题讨论】:
你有答案 [here][1] 在其他 *** 帖子 [1]:***.com/a/4200431/921789 那个对我没用。这个更好***.com/a/9084809/516765 【参考方案1】:只需让第一响应者辞职,但在下一个运行循环中,如下所示:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
if ([searchText length] == 0)
[searchBar performSelector:@selector(resignFirstResponder)
withObject:nil
afterDelay:0];
经过测试,它可以工作。
【讨论】:
我这样做但使用了@selector(resignFirstResponder)【参考方案2】:为 switf 3 更新:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
if searchBar.text == nil || searchBar.text == ""
searchBar.perform(#selector(self.resignFirstResponder), with: nil, afterDelay: 0.1)
【讨论】:
【参考方案3】:添加取消按钮以查看加载和添加方法 -> searchBarCancelButtonClicked
searchBar.showsCancelButton = true
func searchBarCancelButtonClicked(_ searchBar: UISearchBar)
searchBar.resignFirstResponder()
【讨论】:
【参考方案4】:- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
NSRange foundRange = [searchText rangeOfString:@"x"];
if (foundRange.location != NSNotFound)
if (searchText.length == 0)
[searchBar resignFirstResponder];
【讨论】:
我认为问题所指的不是“x”按钮。以上是关于在 UISearchBar 中按“x”时关闭键盘的主要内容,如果未能解决你的问题,请参考以下文章
使用 UISearchBar 关闭键盘,而不让第一响应者辞职
UISearchbar clearButton 强制键盘出现