Como você obscurece texto em um campo de senha em um aplicativo para iPhone?


90

Eu tenho um campo de senha em meu aplicativo (UITextField). Quando o usuário insere texto no campo, quero que ele seja exibido em *vez do texto que ele inseriu.

Tentei usar o UIControlEventEditingDidEndde, UITextFieldmas ele só mostra um *no final durante a edição, mas quero que ele exiba os *s assim que algum texto for inserido, como em qualquer campo de senha de e-mail online. Como posso obter o comportamento desejado?

Respostas:


174

Eu realmente não entendi sua pergunta, mas suponho que você queira um UITextField que exiba pontos para os caracteres, o que todos os campos de senha no iPhone fazem. Para isso, você deseja definir a propriedade secureTextEntry desse UITextField (UITextField tem essa propriedade porque está em conformidade com o protocolo UITextInputTraits) como YES:

textfield.secureTextEntry = YES;

7
Posso definir outros caracteres em vez de pontos?
Vineesh TP

154

Você também pode definir isso no Interface Builder. Selecione seu campo de texto e verifique a configuração "segura" no inspetor.

configuração segura no Interface Builder


7
Uma coisa tão simples, mas não muito óbvia.
Brian Moeskau

Obrigado, geralmente não vejo as instruções do construtor de interface do usuário.

0

Você pode adicionar um caminho de chave secureTextEntry do tipo Boolean e marcá-lo nos atributos de tempo de execução definidos pelo usuário no Inspetor de identidade.

insira a descrição da imagem aqui


Você deve preferir a opção "Proteger" em atributos a usar atributos de tempo de execução como este.
axiixc

0

Se você estiver usando a versão mais recente do Xcode, (versão 9), clique no UITextField que você deseja definir como senha de entrada, clique no inspetor de atributos e marque "Secure Text Entry".


0

Swift 3.3

textfield.isSecureTextEntry = true
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.