El teclado iOS (dentro de UIRemoteKeyboardWindow) no se muestra cuando UITextField se convierte en el primer respondedor en el bloque de finalización de Touch ID (iOS 10)

Recientemente descubrí un problema en mi aplicación que solo parece ocurrir en iOS 10, donde el teclado del sistema no se muestra cuando se activa mediante programación un campo de texto para convertirse en el primer respondedor dentro de un controlador de finalización, específicamente el controlador de finalización del que vuelvo un intento de identificación táctil.

La parte loca de este problema es que, aunque el teclado no se muestra, el área en el iPhone donde normalmente estaría el teclado todavía responde a las entradas táctiles como si el usuario estuviera escribiendo en el teclado.

Después de investigar mucho y depurar el problema, me topé con el hecho de que elhidden la propiedad se establece enYES en lo privadoUIRemoteKeyboardWindow que se crea despuésbecomeFirstResponder se invoca en el campo de texto. En otras situaciones en las que abro el teclado, el valor de esohidden la propiedad se establece enNO.

¿Alguien más se ha encontrado con este problema en iOS 10? Si es así, ¿alguien encontró una solución para esto? Traté de configurar manualmente elhidden valor paraYES en la instancia de la ventana, pero eso no tuvo ningún efecto sobre ella. Estoy casi agarrando pajitas en este punto.

Archivos adjuntos:
Aquí está la salida de las ventanas desde elUIApplication instancia cuando el campo de texto se convierte en el primer respondedor fuera del controlador de finalización de Touch ID (preste mucha atención aUIRemoteKeyboardWindow):

Y cuando elUITextField se convierte en el primer respondedor dentro del controlador Touch ID ...

Primera actualización

Entonces no consideré elbecomeFirstResponder antes de que algunos lo hayan señalado, pero desafortunadamente no resolvió el problema; sin embargo, hice algunos descubrimientos adicionales. loshidden El problema de la ventana parece derivarse de la salida de los detalles de laUIApplication ventanas de la instancia inmediatamente después de emitir elbecomeFirstResponder acción. Después de hacer eso, establecí un punto de interrupción en elUITextField editar la devolución de llamada y proceder a interactuar con el teclado (que es invisible), y cuando envío los detalles de la ventana, no parece quehidden la propiedad siempre se establece enYES (que posiblemente puede descartar que esa propiedad se establezca como la causa del problema), ¡pero todavía tengo un teclado invisible! Comencé a depurar la jerarquía de vistas y a continuación hay una captura de pantalla de cómo se ve cuando examino la ventana del teclado:

Espero que puedan ver lo que descubrí aquí, que es que las teclas están presentes, pero parece que hay una vista en blanco que las bloquea de la vista. La cuestión es que ni siquiera veo esas vistas blancas en la pantalla de mi aplicación. Solo veo lo que normalmente se encuentra detrás del teclado cuando está presente.

Respuestas a la pregunta(2)

Su respuesta a la pregunta