/ / iOS - swift 3.0: quando o idioma de entrada é árabe, o UITextField ainda mostra o indicador caps lock - ios, swift3

iOS - swift 3.0: Quando o idioma de entrada é árabe, o UITextField ainda exibe o indicador de caps lock - ios, swift3

iOS - rápido 3.0: estou desenvolvendo um aplicativo para iOS com os idiomas inglês e árabe. No campo de texto da minha senha, que está no modo "entrada segura de texto", quando altero o idioma de entrada de texto do teclado de inglês para árabe, ele ainda mostra o indicador caps lock. Não consigo encontrar soluções para esse problema estranho. Pls me ajude. Desde já, obrigado.

Nota: Não consigo reproduzir isso com frequência, mas meu cliente relata esse bug. Eu sou totalmente sem noção. Parece bug do iOS?

Respostas:

0 para resposta № 1

Ok, assumindo que o teclado árabe basicamentenão possui tecla Shift (e assume ainda que pressionar Shift antes na contraparte em inglês não modifica realmente a entrada, ou seja, é apenas uma falha gráfica) que soa como um bug da Apple.

De acordo com esta resposta (que é datada, mas suponho que ainda seja válida), você não pode realmente alterar nada do teclado de forma programática nesse sentido. Ou seja, não pode pressionar um botão como a mudança de código.

Se é realmente apenas uma questão gráfica e você pode descobrir quando exatamente o ícone devemos desaparecer, você pode contorná-la sobrepondo sua própria imagem sobre o botão (por exemplo, um quadrado branco para ocultá-la), como assim. Não sei qual evento ou método de delegação aconteceria imediatamente antes que a imagem precise ser definida. No entanto, você precisará descobrir isso com seus usuários.

Além disso, sugiro que solicite um pedido pela Apple se for realmente apenas uma questão gráfica.


0 para resposta № 2

Por fim, criei uma solução para ocultar o indicador caps lock do campo de texto quando ele está no modo secureTextEntry.

//-------To hide caps lock indicator------//

let v = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
self.passwordTextField.rightView = v

//----------------------------------------//

Basicamente, o indicador caps lock é apresentadona exibição correta do UITextFiled por padrão, quando o campo de texto estiver no modo secureTextEntry. Ao atribuir uma vista com dimensão zero à vista correta do campo de texto, ela simplesmente substitui a vista pela nova vista (que tem dimensão zero); portanto, o indicador caps lock nunca aparece lá depois.