UISearchBarDisplayController не показывает мне клавиатуру

Я сделал как поиск по текстовому полю.

В котором я сначала создаю текстовое поле, а также добавляю новый UISearchViewController

Теперь я установил

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

но я видел только контроллер дисплея поиска и черный фон без клавиатуры

когда я непосредственно нажал в строке поиска, это показывает клавиатуру

что я должен сделать для отображения клавиатуры в UISearchBarController сверху метод

РЕДАКТИРОВАТЬ

Пожалуйста, скачайте мой код здесь http://sourceforge.net/projects/locationdemo/files/LocationDemo.zip/download

2 ответа

Решение

Наконец-то у меня есть ответ, которым я хочу поделиться с каждым

- (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;
}

Эта линия создаст проблемы:

[textField resignFirstResponder];

ПОЧЕМУ это там? Если вы хотите показать клавиатуру. Вы не должны называть это в этот момент. Что будет Уволить или Спрятать клавиатуру?

Ну, где вы называете [textField становиться FirstResponder]?

Вы также можете использовать этот UISearchBar вместо того, чтобы пытаться написать свой собственный.

Другие вопросы по тегам