2013-06-09 10 views
15

Come posso cambiare un testo sicuro UITextField (che è semplicemente un mucchio di punti) in (*) caratteri asterisco come nell'immagine qui sotto?Proteggi il testo di UITextField su (*) carattere asterisco

enter image description here

+2

possibile duplicato di [modificare il carattere della password sicura in UITextfield] (http://stackoverflow.com/questions/3280069/change-the-secure-password-character-in-uitextfield) – Claudiu

risposta

11

è possibile impostare a livello di codice

[textField setSecureTextEntry:YES]; 

o in IB (casella di controllo fissata in basso)

enter image description here

+2

Sì, ma il testo viene visualizzato come punti .. Voglio l'asterisco –

+2

@TimTuffley Ero così ansioso di rispondere che non l'ho letto correttamente. Perdonami per quello. – Anupdas

+0

@TimTuffley Questa [risposta] (http://stackoverflow.com/a/3280471/767730) potrebbe essere utile. – Anupdas

4

Si potrebbe anche provare semplicemente implementare il proprio " campo di testo sicuro ".

Basta creare un campo di testo normale non protetto e collegare l'azione "Modifica modificata" con un metodo nel controller di visualizzazione.

Quindi all'interno di tale metodo è possibile acquisire i nuovi caratteri ogni volta che viene modificato il testo e aggiungerli a una proprietà NSString privata, quindi impostare la proprietà .text di textField su una stringa contenente solo asterischi (o qualsiasi altro personaggio se preferisci).

Aggiornamento: come notato da hayesk di seguito, questa soluzione non è più l'ideale, come l'introduzione di tastiere di terze parti espone ingresso su tutti i campi di testo non protette per l'applicazione di terze parti, rischiando raccogliendoli quell'informazione e/o aggiungerla al database di correzione automatica.

+7

Queste soluzioni sono cattive perché il campo non è veramente sicuro. Permette a tastiere di terze parti che possono curiosare e può ancora aggiungere password al database di correzione automatica. – hayesk

+0

Ah, interessante. Ho scritto questa risposta prima dell'esistenza di tastiere di terze parti, quindi non era un problema al momento, ma è bene sapere che questa non è più una soluzione ideale. Grazie! –

+0

È possibile aggiungere questo codice 'applicazione func (_ applicazione: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplicationExtensionPointIdentifier) ​​-> Bool { se extensionPointIdentifier == .keyboard {return false } return true} ' 'al tuo AppDelegate' a disabilita le tastiere di terze parti. – Matic1911

Problemi correlati