Разработка iPhone/iPod touch приложений: повесть о клавиатуре

Иногда бывает необходимо узнавать о том, когда клавиатура собирается появиться или спрятаться (например, когда текстовые поля находятся в таблице и приходится уменьшать высоту таблицы так, чтобы она вся была над клавиатурой). Для этого есть 4 типа уведомлений с такими именами:

  • UIKeyboardWillShowNotification – клавиатура должна появится,
  • UIKeyboardDidShowNotification – клавиатура появилась,
  • UIKeyboardWillHideNotification – клавиатура должна спрятаться,
  • UIKeyboardDidHideNotification – клавиатура наконец спряталась.

Так вот…

Если, например, просто вызвать метод resignFirstResponder у объекта класса UITextField, то все хорошо, и мы получаем оба уведомления -  UIKeyboardWillHideNotification и UIKeyboardDidHideNotification. Но, если в момет редактирования какого-то из текстовых полей будет осуществлена установка курсора в другое текстовое поле, то, как выяснилось, уведомление UIKeyboardDidHideNotification не приходит, при том что приходит UIKeyboardWillHideNotification, а затем UIKeyboardWillShowNotification и UIKeyboardDidShowNotification. Возможно, это вызвано тем, что клавиатура не успевает спрятаться до того, как снова начинает появляться :). Но, в любом случае, нужно иметь это ввиду, если вы собираетесь использовать эти уведомления.

 

Комментарии

[...] не забывайте, что у клавиатуры и ее событий есть некоторые особенности. Таги: iPhone, Keyboard, m, toolbar, toolbar over keyboard, UIKeyboard, [...]

Оставить комментарий