UISearchBar 和 resignFirstResponder
Posted
技术标签:
【中文标题】UISearchBar 和 resignFirstResponder【英文标题】:UISearchBar and resignFirstResponder 【发布时间】:2010-08-06 13:25:48 【问题描述】:我有一个带有附加 UISearchBar 的非常基本的 UITableView,下面是发生的流程
UITableView 为空,用户点击 UISearchBar,并调出键盘。 一旦用户点击搜索按钮
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
[searchBar resignFirstResponder]; //move the keyboard out of the way
//Code....
工作得很好,将键盘移开,并填充 UITableView。 问题在于任何后续的搜索尝试。
执行与之前相同的步骤,但键盘从未关闭。我感觉有其他东西正在成为响应者,我只需要稍微澄清一下就可以了解实际发生的情况。
【问题讨论】:
【参考方案1】:没有看到你的代码很难猜到。但是,如果您包括:
[self.view endEditing:YES];
所有视图都将放弃第一响应者。
【讨论】:
我在包含 UITextFields 的 UICollectionView 单元格中遇到了类似的问题,这为我解决了,谢谢! 不适用于func searchBarCancelButtonClicked(searchBar: UISearchBar)
协议【参考方案2】:
并不完美,但确实适用于我的情况。没有 dispatch_after
将无法工作- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
if (!searchText.length)
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^
[searchBar resignFirstResponder];
);
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
[self performSearchWithString:searchBar.text];
[searchBar resignFirstResponder];
【讨论】:
以上是关于UISearchBar 和 resignFirstResponder的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 和 resignFirstResponder