Come oscuri il testo in un campo della password in un'applicazione per iPhone?


90

Ho un campo password nella mia applicazione (UITextField). Quando l'utente inserisce del testo nel campo, voglio che venga visualizzato al *posto del testo che ha inserito.

Ho provato a utilizzare UIControlEventEditingDidEnddi, UITextFieldma ne mostra solo uno *alla fine durante la modifica, ma voglio che visualizzi la *s non appena viene inserito un testo, come in qualsiasi campo della password di posta elettronica online. Come posso ottenere il comportamento desiderato?

Risposte:


174

Non capisco davvero la tua domanda, ma immagino che tu voglia un UITextField che mostri i punti per i caratteri, cosa che fa ogni campo della password sull'iPhone. Per questo, si desidera impostare la proprietà secureTextEntry di tale UITextField (UITextField ha una tale proprietà perché è conforme al protocollo UITextInputTraits) su YES:

textfield.secureTextEntry = YES;

7
Posso impostare altri caratteri al posto dei punti?
Vineesh TP

154

Puoi anche impostarlo in Interface Builder. Seleziona il campo di testo e controlla l'impostazione "sicuro" nell'inspector.

impostazione sicura in Interface Builder


7
Una cosa così semplice, ma non molto ovvia.
Brian Moeskau

Grazie, di solito non vedo le istruzioni del builder dell'interfaccia utente.

0

È possibile aggiungere un percorso chiave secureTextEntry di tipo Boolean e spuntarlo negli attributi di runtime definiti dall'utente in Identity Inspector.

inserisci qui la descrizione dell'immagine


Si dovrebbe preferire l'opzione "Sicuro" sotto gli attributi all'utilizzo di attributi di runtime come questo.
axiixc

0

Se stai utilizzando l'ultima versione di Xcode, (versione 9), fai clic su UITextField di cui desideri impostare l'input come password, quindi fai clic sull'ispettore attributi e seleziona "Secure Text Entry".


0

Swift 3.3

textfield.isSecureTextEntry = true
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.