我的UINavigationItem中有一个UISearchBar,如下所示:
searchBar = [[UISearchBar alloc] init];
[searchBar setDelegate:self];
self.navigationItem.titleView = searchBar;
然后在我的表格视图中我使用:
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self.searchBar resignFirstResponder];
}
- 如果用户滚动结果,键盘将消失。
然而,现在当我再次点击搜索栏时,我无法用它来拉起键盘。我认为视图会自动执行,但它(不清楚)。我试过了:
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
[searchBar becomeFirstResponder];
}
它不起作用(我没想到)
答案 0 :(得分:0)
searchBarTextDidBeginEditing
,所以显然你的becomeFirstResponder
调用甚至没有被调用。
我和您一样惊讶,搜索栏不会在点击时自动成为第一响应者。是否有其他代码(上面未显示)禁用它?您是否实施了searchBarShouldBeginEditing:
以返回NO?
编辑:聊天后,结果问题是他没有给UISearchBar分配一个框架(正如你从他的代码中看到的那样)。