Estoy creando una aplicación similar a la aplicación de iMessage del iPad que hace mensajes. De modo 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 redimensionarse correctamente cuando se muestra el teclado mientras está acoplado o desacoplado.Teclado dividido de iPad
El problema que tengo es que los datos de notificación que provienen de UIKeyboardWillChangeFrameNotification no son consistentes.
En primer lugar, hay 3 formas en que el usuario puede desacoplar el teclado:
- Presione y mantenga pulsada la tecla inferior derecha, a continuación, se deslizan hacia arriba
- Pulse y mantenga pulsada la tecla inferior derecha, cuando aparezca el menú, seleccionar "desacoplar"
- Presione y mantenga pulsada la tecla inferior derecha, cuando aparezca el menú, seleccionar "split"
Para el caso # 1, los datos de notificación de UIKeyboardWillChangeFrameNotification es consistir ent. Estos son los datos:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
Para el caso # 2 y # 3 los datos son inconsistentes, aquí 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 es que cuando escucho a UIKeyboardDidChangeFrameNotification bajo la causa # 2 o # 3, los datos vienen como se esperaba:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
¿Por qué los datos de notificación son diferentes? ¿Alguien encontró una forma clara de detectar los eventos de teclado dividido?
Esto va a hacer que sea más difícil desde que se presenta el iPad Mini. Ni siquiera he tocado iOS 7 todavía ... –
sin diferencia. 216 no es píxeles, su parmetro de punto es independiente de la resolucin. Pero esto no funciona con iPhone 4s y 5. Y iPhone no tiene teclado dividido. Ellos cambian el factor de forma. – Bimawa
Tenga cuidado, esta no es una buena solución. Las alturas de los teclados cambian según la configuración regional, ios y el dispositivo. – capikaw