Кто-нибудь нашел хороший способ использования нового События клавиатуры iOS5?

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

Основные проблемы, с которыми я столкнулся с API, заключаются в том, что новые уведомления UIKeyboardWillChangeFrameNotification и UIKeyboardDidChangeFrameNotification в лучшем случае являются шагом назад по сравнению с предыдущим API и содержат мусорные данные, из-за которых почти невозможно понять, что на самом деле делает клавиатура. много случаев.

Можно ли распознать любое из следующих действий клавиатуры без тщательного изучения начальных / конечных кадров, которые возвращаются в уведомлениях?

  • Отключение клавиатуры
  • Док-станция для клавиатуры
  • Разделение / разделение клавиатуры
  • Отображение неподключенной клавиатуры
  • Открепленная клавиатура скрывается
  • Вид вращается, когда клавиатура отсоединена

Я придумал некоторые абстракции для распознавания закрепленных или внеэкранных фреймов, но даже с этим мой код становится очень неуправляемым. Если вы нашли более эффективный способ сделать это, ответьте или прокомментируйте. Надеюсь, мне что-то здесь не хватает. Спасибо.

25
задан TahoeWolverine 11 November 2011 в 21:53
поделиться