Прокрутка uiTextField для разных размеров клавиатуры

У меня есть UITableView с несколькими UITextFields . Когда пользователь редактирует firstresponder , textfield которое является firstresponder , прокручивается до положения чуть выше клавиатуры. Это отлично textfields для textfields которые используют клавиатуру по умолчанию. Но у меня есть одно textfield , использующее UIPickerView как inputView. Поскольку я хочу, чтобы пользователь подтвердил выбор в pickerview я также добавил accessoryview с помощью inputAccessoryView кнопки в inputAccessoryView textfield поля.

Теперь я сталкиваюсь с поведением, которое я не понимаю. Когда клавиатуры не отображается, и я нажимаю текстовое поле с помощью pickerview, я получаю уведомление для UIKeyboardDidShowNotification . Уведомление приводит к следующему вызову функции:

 - (void)keyboardWasShown:(NSNotification *)aNotification { NSDictionary* info = [aNotification userInfo]; CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; // handle resize of tableview frame... } 

Высота клавиатуры (kbSize.height) равна 260. Это соответствует размеру клавиатуры по умолчанию 216 + 44 для панели инструментов в окне accessoryview . textfield прокручивается до позиции над панелью инструментов в окне accessoryview .

Странное поведение возникает, когда я сначала нажимаю текстовое поле с клавиатурой по умолчанию, а затем продолжаю (без отклонения клавиатуры) с pickerview с помощью pickerview . Показатель pickerview отображается, как ожидалось, но размер клавиатуры не изменяется и остается 216 (уведомление обрабатывается). Это приводит к различным поведениям прокрутки: textfield видимо за полупрозрачной панелью инструментов в окне accessoryview .

Пожалуйста, может кто-нибудь объяснить, почему размер клавиатуры отличается для pickerview в обоих случаях.

Пожалуйста, может кто-нибудь сказать мне, как справиться с этим в коде. Это нормально для меня, когда textfield прокручивается до положения за полупрозрачной панелью инструментов.

Interesting Posts
Давайте будем гением компьютера.