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