我有一个附加了UISearchBar的非常基本的UITableView,下面是执行操作的流程
UITableView为空,用户点击UISearchBar并调出键盘。一旦用户点击搜索按钮
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[searchBar resignFirstResponder]; //move the keyboard out of the way
//Code....
}工作正常,并将键盘移开,并填充UITableView。问题在于任何后续的搜索尝试。
执行与前面相同的步骤,但是键盘永远不会关闭。我有一种感觉,其他的东西正在成为响应者,我只需要一点清晰的东西来理解实际发生的事情。
发布于 2010-08-06 21:32:21
如果不看你的代码,就很难猜到。但是,如果包括:
[self.view endEditing:YES];所有意见将辞去first responder。
发布于 2016-09-03 01:34:14
不是很完美,但对我的情况很管用。没有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];
}https://stackoverflow.com/questions/3424172
复制相似问题