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?

TheNeil
fonte

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;
drvdijk
fonte
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

Nathaniel Martin
fonte
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

Vivekanandan
fonte
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".

Donna
fonte
0

Swift 3.3

textfield.isSecureTextEntry = true
Mike.R
fonte