2013-06-09 8 views
15

Wie kann ich einen sicheren UITextField Text (der einfach eine Reihe von Punkten ist) in (*) Sternchen wie im Bild unten ändern?Sichere UITextField Textänderung in (*) Sternzeichen

enter image description here

+2

möglich Duplikat von [ändern Sie das sichere Passwort in UITextfield] (http://stackoverflow.com/questions/3280069/change-the-secure-password-character-in-uitextfield) – Claudiu

Antwort

11

Sie können es von

[textField setSecureTextEntry:YES]; 

oder in IB (gesichert Kontrollkästchen unten) programmatisch eingestellt

enter image description here

+2

Ja, aber der Text erscheint als Punkte .. Ich möchte asterisk –

+2

@TimTuffley Ich war so eifrig zu beantworten, dass ich es nicht richtig gelesen habe. Das tut mir leid. – Anupdas

+0

@TimTuffley Diese [Antwort] (http://stackoverflow.com/a/3280471/767730) könnte nützlich sein. – Anupdas

4

Sie auch einfach versuchen könnte Ihre eigene "Umsetzung sicheres Textfeld ".

Erstellen Sie einfach ein normales, nicht sicheres Textfeld und verknüpfen Sie die Aktion "Bearbeitung geändert" mit einer Methode in Ihrem View-Controller. Geben Sie innerhalb dieser Methode die neuen Zeichen bei jeder Änderung des Texts ein, fügen Sie sie zu einer privaten NSString-Eigenschaft hinzu, und legen Sie dann die text.field-Eigenschaft des textField auf eine Zeichenfolge mit nur Sternchen (oder einer anderen Zeichenfolge) fest Zeichen, wenn Sie bevorzugen).

Update: als unten durch hayesk erwähnt, ist diese Lösung nicht mehr ideal, da die Einführung von Drittanbieter-Tastatureingabe auf alle nicht gesicherten Textfelder auf die Anwendung von Drittanbietern aussetzt, riskiert sie zu sammeln diese Informationen und/oder fügen Sie sie der Autokorrekturdatenbank hinzu.

+7

Diese Lösungen sind schlecht, weil das Feld nicht wirklich sicher ist. Es ermöglicht Drittanbietertastaturen, die Snooping ausführen können, und es können weiterhin Passwörter zur Autokorrekturdatenbank hinzugefügt werden. – hayesk

+0

Ahh, interessant. Ich habe diese Antwort vor der Existenz von Third-Party-Tastaturen geschrieben, also war das zu dieser Zeit kein Problem, aber es ist gut zu wissen, dass dies jetzt keine ideale Lösung mehr ist. Vielen Dank! –

+0

Sie können diesen Code 'func Anwendung hinzufügen (_ Anwendung: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplicationExtensionPointIdentifier) ​​-> Bool { wenn extensionPointIdentifier == .keyboard { return false } return true }' zu 'AppDelegate' zu Deaktivieren Sie die Tastaturen von Drittanbietern. – Matic1911