Здравствуйте!
— Не хотите ли войти
Tags Switch

Повесть о клавиатуре

5 марта 2010

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

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

Так вот…

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

Ресурсы

© 2009-2012, ООО «Инру»
Вход
Имя пользователя:
Пароль:
Или…
Twi
Отмена
Войти
Восстановить забытый пароль…