Виртуальная клавиатура iPad исчезнет при одном (по крайней мере), из этих 3 обстоятельств:
Во всех случаях я добираюсь UIKeyboardWillHideNotification
.
Проблема состоит в том, что первые два случая обычно эквивалентны - другими словами, пользователь сделан, редактируя текстовое поле. Но в третьем случае, текстовое поле все еще редактируется, только из другого входного источника.
Проблема обнаруживает различие между случаями 2 и 3. Все, что я получаю в обоих случаях, UIKeyboardWillHideNotification
. В случае, если 2, я обычно хочу также заблокировать средства редактирования и фиксировать значение. В случае, если 3, я обычно хочу ничего не сделать и позволить редактировать для продолжения.
Но как я могу сказать различие?
Приложение Страниц Apple, кажется, может отличить это на переименовании заголовка документа.
Я бы посмотрел на UIKeyboardBoundsUserInfoKey, переданный с уведомлением. У физической клавиатуры, вероятно, есть пустые границы.
Похоже, вы просто пытаетесь выяснить, когда пользователь завершил редактирование. Вы можете прослушивать уведомление UITextFieldTextDidEndEditingNotification
для случаев 1 и 2.
Гораздо более простым решением было бы, не могли бы вы просто проверить свойство редактирования
для UITextField
, чтобы определить, нужно ли его редактировать или нет? У меня нет физической клавиатуры, поэтому у меня нет возможности это проверить. Я просто догадываюсь.
Вот ссылка на документацию по этому свойству: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITextField_Class/Reference/UITextField.html#//apple_ref/occ/ instp / UITextField / edit
Мне очень любопытно узнать, работает это или нет ... :)