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 № 1Ok, 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.