O teclado do iOS (dentro do UIRemoteKeyboardWindow) não é exibido quando o UITextField se torna o primeiro respondedor no bloco de conclusão do Touch ID (iOS 10)

Descobri recentemente um problema no meu aplicativo que parece ocorrer apenas no iOS 10, em que o teclado do sistema não é exibido ao acionar programaticamente um campo de texto para se tornar o primeiro respondedor dentro de um manipulador de conclusão - especificamente o manipulador de conclusão do qual volto. uma tentativa de Touch ID.

A parte mais louca desse problema é que, embora o teclado não seja mostrado, a área do iPhone onde o teclado normalmente estaria ainda está respondendo às entradas de toque, como se o usuário estivesse digitando no teclado!

Depois de fazer muita investigação e depuração do problema, deparei-me com o fato de que ohidden A propriedade está definida comoYES no privadoUIRemoteKeyboardWindow que é criado depoisbecomeFirstResponder é chamado no campo de texto. Em outras situações em que trago o teclado, o valor dessehidden A propriedade está definida comoNO.

Alguém mais teve esse problema no iOS 10? Se sim, alguém encontrou uma solução para isso? Tentei configurar manualmente ohidden valor paraYES na instância da janela, mas isso não teve efeito. Eu estou praticamente agarrando canudos neste momento.

Anexos:
Aqui está a saída das janelas doUIApplication exemplo, quando o campo de texto se torna o primeiro respondedor fora do manipulador de conclusão do Touch ID (preste muita atenção aUIRemoteKeyboardWindow):

E quando oUITextField torna-se o primeiro respondedor dentro do manipulador Touch ID ...

Primeira atualização

Então, eu não considerei obecomeFirstResponder sendo feito no thread principal antes que alguns tenham apontado, mas infelizmente não resolveu o problema - no entanto, fiz algumas descobertas adicionais. ohidden O problema da janela parece resultar da saída dos detalhes doUIApplication janelas da instância imediatamente após a emissão dobecomeFirstResponder açao. Depois disso, defina um ponto de interrupção noUITextField editar retorno de chamada e continuar a interagir com o teclado (que é invisível) - e quando mostro os detalhes da janela, não parece ohidden A propriedade é sempre definida comoYES (o que pode excluir a propriedade de ser definida como a causa do problema), mas ainda tenho um teclado invisível! Comecei a depurar a hierarquia de visualizações e abaixo está uma captura de tela da aparência quando examino a janela do teclado:

Espero que vocês possam ver o que eu descobri aqui, que é que as chaves estão presentes, mas parece haver alguma visão em branco impedindo-a de ver. O problema é que nem vejo essas visualizações brancas na tela do meu aplicativo. Acabei de ver o que normalmente fica atrás do teclado quando está presente.

questionAnswers(2)

yourAnswerToTheQuestion