导航项中的搜索栏将不是第一个控制器

时间:2013-04-02 22:56:48

标签: ios objective-c cocoa-touch

我的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];
}

它不起作用(我没想到)

1 个答案:

答案 0 :(得分:0)

直到搜索栏成为第一响应者之后才会调用{p> searchBarTextDidBeginEditing,所以显然你的becomeFirstResponder调用甚至没有被调用。

我和您一样惊讶,搜索栏不会在点击时自动成为第一响应者。是否有其他代码(上面未显示)禁用它?您是否实施了searchBarShouldBeginEditing:以返回NO?

编辑:聊天后,结果问题是他没有给UISearchBar分配一个框架(正如你从他的代码中看到的那样)。