iPad teclado dividido
Estoy creando una aplicación similar a la aplicación iMessage del iPad que envía mensajes. Así que hay una vista de entrada anclada en la parte inferior de la vista de mensaje y la vista de accesorio de entrada cuando se muestra el teclado. Además, la vista del mensaje debe cambiarse de tamaño correctamente cuando se muestra el teclado mientras está acoplado o desacoplado.
El problema que tengo es que los datos de notificación que vienen de UIKeyboardWillChangeFrameNotification no son consistentes.
Primero, hay 3 formas en que el usuario puede desacoplar el teclado:
Presione y mantenga presionada la tecla inferior derecha, luego deslice hacia arribaPresiona y mantén presionada la tecla inferior derecha, cuando el menú aparece, selecciona "desacoplar"Presione y mantenga presionada la tecla inferior derecha, cuando el menú aparece, seleccione "dividir"Para el caso # 1, los datos de notificación de UIKeyboardWillChangeFrameNotification son consistentes. Aquí están los datos:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
Para los casos # 2 y # 3, los datos son inconsistentes, esto es lo que recibo:
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}}";
}
Lo que es extraño aquí es que cuando escucho UIKeyboardDidChangeFrameNotification bajo el caso # 2 o # 3, los datos aparecen como se esperaba:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
¿Por qué los datos de notificación son diferentes? ¿Alguien encontró una manera clara de detectar los eventos de teclado dividido?