IPAD виртуальная клавиатура исчезнет в одном из (по крайней мере) этих 3 обстоятельства:Обнаружение скрытия клавиатуры iPad против внешней клавиатуры?
- Если элемент управления (скажем, UITextField) программно отказывает первый респондент.
- Если пользователь нажал кнопку «убрать клавиатуру» в правом нижнем углу.
- Если пользователь подключается к периферии периферийного устройства USB/клавиатуры.
Во всех случаях я получаю UIKeyboardWillHideNotification
.
Проблема в том, что первые два случая в целом эквивалентны - другими словами, пользователь выполнил редактирование текстового поля. Но в третьем случае текстовое поле все еще редактируется, только из другого источника ввода.
Проблема заключается в обнаружении разницы между случаями 2 и 3. Все, что я получаю в обоих случаях, - UIKeyboardWillHideNotification
. В случае 2 я вообще хочу также заблокировать элемент управления редактированием и передать значение. В случае 3 я вообще ничего не хочу делать и разрешать редактирование для продолжения.
Но как я могу сказать разницу?
Приложение Apple's Pages, похоже, может отличить это от переименования в документе.
К сожалению, нет. Физическая клавиатура не генерирует UIKeyboardWillShowNotification, когда она появляется. Прикрепление его просто генерирует уведомление WillHide, соответствующее виртуальному. –
В случае 1 управление теряет фокус. То же самое верно в случае 2? Я полагаю, что в случае 3 управление сохраняет фокус. – drawnonward
В случаях 2 и 3 управление продолжает оставаться первым ответчиком. Отказ от первого ответчика отклонит клавиатуру, но противоположность, по-видимому, не верна. –