Wie verdeckt man Text in einem Passwortfeld in einer iPhone-Anwendung?

90

Ich habe ein Passwortfeld in meiner Anwendung (UITextField). Wenn der Benutzer Text in das Feld eingibt, soll dieser *anstelle des eingegebenen Textes angezeigt werden.

Ich habe versucht, das UIControlEventEditingDidEndvon zu verwenden, UITextFieldaber es wird nur eines *am Ende beim Bearbeiten angezeigt, aber ich möchte, dass das *s angezeigt wird, sobald ein Text eingegeben wird, wie in einem Online-E-Mail-Passwortfeld. Wie kann ich das gewünschte Verhalten erreichen?

TheNeil
quelle

Antworten:

174

Ich verstehe Ihre Frage nicht wirklich, aber ich vermute, Sie möchten ein UITextField, das Punkte für die Zeichen anzeigt, wie es jedes Passwortfeld auf dem iPhone tut. Zu diesem Zweck möchten Sie die Eigenschaft secureTextEntry dieses UITextField (UITextField verfügt über eine solche Eigenschaft, da sie dem UITextInputTraits-Protokoll entspricht) auf YES setzen:

textfield.secureTextEntry = YES;
drvdijk
quelle
7
Kann ich andere Zeichen anstelle von Punkten festlegen?
Vineesh TP
154

Sie können dies auch im Interface Builder festlegen. Wählen Sie Ihr Textfeld aus und überprüfen Sie die Einstellung "Sicher" im Inspektor.

sichere Einstellung in Interface Builder

Nathaniel Martin
quelle
7
So eine einfache Sache, aber nicht sehr offensichtlich.
Brian Moeskau
Danke, ich sehe normalerweise keine Anweisungen für den UI-Builder.
0

Sie können einen Schlüsselpfad SecureTextEntry vom Typ Boolean hinzufügen und in den benutzerdefinierten Laufzeitattributen im Identitätsinspektor ankreuzen.

Geben Sie hier die Bildbeschreibung ein

Vivekanandan
quelle
Sie sollten die Option "Sicher" unter Attributen der Verwendung solcher Laufzeitattribute vorziehen.
Axiixc
0

Wenn Sie die neueste Version von Xcode (Version 9) verwenden, klicken Sie auf das UITextField, für das Sie die Eingabe als Kennwort festlegen möchten, klicken Sie dann auf den Attributinspektor und aktivieren Sie "Sichere Texteingabe".

Donna
quelle
0

Swift 3.3

textfield.isSecureTextEntry = true
Mike.R
quelle