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?

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;

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


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


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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.