El IPAD teclado virtual desaparecerá en uno de (al menos) estas 3 circunstancias:¿Detecta la ocultación del teclado del iPad frente a la conexión del teclado externo?
- Si el control (por ejemplo, un UITextField) renuncia programación de primera respuesta.
- Si el usuario toca el botón "descartar el teclado" en la esquina inferior derecha.
- Si el usuario se conecta al puerto USB/teclado dock.
En todos los casos, obtengo el UIKeyboardWillHideNotification
.
El problema es que los dos primeros casos son generalmente equivalentes, en otras palabras, el usuario ha terminado de editar el campo de texto. Pero en el tercer caso, el campo de texto todavía se está editando, solo desde otra fuente de entrada.
El problema es detectar la diferencia entre los casos 2 y 3. Todo lo que obtengo en ambos casos es UIKeyboardWillHideNotification
. En el caso 2, generalmente también quiero bloquear el control de edición y comprometer el valor. En el caso 3, generalmente no quiero hacer nada y permitir que la edición continúe.
Pero, ¿cómo noto la diferencia?
La aplicación de páginas de Apple parece ser capaz de distinguir esto en el cambio de nombre del título del documento.
Desafortunadamente no. El teclado físico no genera un UIKeyboardWillShowNotification cuando aparece. Adjuntarlo simplemente genera una notificación de WillHide que corresponde a la virtual. –
En el caso 1, el control pierde el foco. ¿Es lo mismo en el caso 2? Supongo que en el caso 3, el control retiene el foco. – drawnonward
En los casos 2 y 3, el control continúa siendo firstResponder. La renuncia del primer respondedor descartará el teclado, pero lo contrario no es aparentemente cierto. –