сплит-клавиатура для iPad
Я создаю приложение, похожее на приложение iMessage для iPad, которое отправляет сообщения. Таким образом, есть вид ввода, закрепленный в нижней части вида сообщения, и вид вспомогательного ввода при отображении клавиатуры. Кроме того, размер сообщения должен быть соответствующим образом изменен, когда клавиатура отображается, когда она установлена или отсоединена.
Проблема, с которой я столкнулся, заключается в том, что данные уведомлений, поступающие из UIKeyboardWillChangeFrameNotification, не согласованы.
Во-первых, есть 3 способа отсоединения клавиатуры от пользователя:
Нажмите и удерживайте нижнюю правую клавишу, затем сдвиньте вверх Нажмите и удерживайте нижнюю правую клавишу, когда появится всплывающее меню, выберите «открепить» Нажмите и удерживайте нижнюю правую клавишу, когда появится всплывающее меню, выберите «разделить»Для случая № 1 данные уведомления от UIKeyboardWillChangeFrameNotification согласованы. Вот данные:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
Для случаев № 2 и № 3 данные противоречивы, вот что я получаю:
userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = "0.25";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {384, 872}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {384, 1136}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
UIKeyboardFrameChangedByUserInteraction = 0;
UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, -264}, {768, 304}}";
}
Странно, что когда я слушаю UIKeyboardDidChangeFrameNotification в случае № 2 или № 3, данные поступают, как и ожидалось:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
Почему данные уведомления отличаются? Кто-нибудь нашел четкий способ обнаружения событий с разделенной клавиатурой?