Во время разработки недавно появившейся функции для моего iPad-приложения я понял, что новое поведение для стыковки/расщепления клавиатуры iOS5 вызывает огромные проблемы. Я использую inputAccessoryView для клавиатуры с текстовым полем на ней, подобным функции Safari find on page. Я показываю клавиатуру над прокручиваемым UIWebView, поэтому мои проблемы возникают из-за усохшего UIWebview, когда клавиатура состыкована и имеет (в основном) полноэкранный веб-просмотр, когда он отсоединен.
Основные проблемы, с которыми я столкнулся с API, - это то, что новые уведомления UIKeyboardWillChangeFrameNotification и UIKeyboardDidChangeFrameNotification являются в лучшем случае шагом назад от предыдущего API и содержат данные мусора, из-за которых практически невозможно понять, что на самом деле делает клавиатура во многих случаях.
Можно ли распознать любое из следующих действий клавиатуры без тщательного изучения начальных/конечных кадров, возвращающихся к уведомлениям?
- Клавиатура Undocks
- Клавиатурные доки
- Разделение /Unsplits клавиатуры
- Отключенные показы клавиатуры
- Открытые шкуры клавиатуры
- Просмотр вращается, когда клавиатура отстыкована.
Я придумал некоторые абстракции, чтобы распознать фреймы, которые состыкованы или за кадром, но даже с этим мой код становится очень неуправляемым. Если вы нашли лучшие способы сделать это, ответьте или прокомментируйте. Надеюсь, я что-то пропустил. Спасибо.