UISearchBarDisplayController不向我显示键盘

时间:2012-07-04 17:17:46

标签: iphone ios ios5 uisearchbardisplaycontrol

我做了像文本字段搜索。

我首先创建文本字段并添加新的UISearchViewController

现在我已经设置了

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
        [textField resignFirstResponder];
    self.searchDisplayController.searchBar.hidden = FALSE;
    [self.searchDisplayController.searchBar becomeFirstResponder];
    [self.searchDisplayController setActive:YES animated:NO];
}

但我只看到搜索显示控制器和带键盘的黑色背景

当我直接在搜索栏中按下它时会显示键盘

我应该从上面的方法

为UISearchBarController中的show键做什么

编辑

请从此处http://sourceforge.net/projects/locationdemo/files/LocationDemo.zip/download

下载我的代码

2 个答案:

答案 0 :(得分:0)

这一行会产生问题:

[textField resignFirstResponder];

它在那里。如果要显示键盘。你现在不应该这样称呼它。那会解雇或隐藏键盘吗?

你在哪里调用[textField becomeFirstResponder]?

您也可以使用此UISearchBar,而不是尝试编写自己的。

答案 1 :(得分:0)

最后,我的答案想要与每个人分享

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
        [textField resignFirstResponder];
        NSTimer *theTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(keyboardWasShown:) userInfo:nil repeats:NO];
}

- (void)keyboardWasShown:(NSNotification *)notification
{
    [self.searchDisplayController.searchBar becomeFirstResponder];
    self.searchDisplayController.searchBar.hidden = FALSE;
    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
    CGRect aRect = self.view.frame;
    aRect.size.height -= keyboardSize.height;
}