Verstecken Sie das Passwort mit "•••••••" in einem Textfeld

132

In meiner App gibt es ein Textfeld, in das der Benutzer ein Passwort eingeben muss, und ich möchte, dass es bei der Eingabe eines Zeichens in '•' geändert wird. Wie kann ich das tun?

Clément Bisaillon
quelle

Antworten:

302

Sie können dies direkt in Xcode erreichen:

Geben Sie hier die Bildbeschreibung ein

Stellen Sie sicher, dass das allerletzte Kontrollkästchen aktiviert secureist.

Oder Sie können es mit Code tun:

Gibt an, ob das Textobjekt den eingegebenen Text verbergen soll.

Erklärung

optional var secureTextEntry: Bool { get set }

Diskussion

Diese Eigenschaft ist falsestandardmäßig aktiviert. Wenn Sie diese Eigenschaft so trueeinstellen, dass ein Textobjekt im Kennwortstil erstellt wird, wird der eingegebene Text ausgeblendet.

Beispiel:

texfield.secureTextEntry = true
meda
quelle
1
Im neuen XCode8 und höher müssen wir SecureTextEntry in der Laufzeitattributspalte hinzufügen
Balagurubaran
55

in Swift 3.0 oder höher

passwordTextField.isSecureTextEntry = true
Kishu Mewara
quelle
13

Wenn Sie in XCode 6.3.1 a verwenden, NSTextFieldwird das Kontrollkästchen für nicht angezeigt secure.

Anstatt Verwendung zu NSTextFieldverwendenNSSecureTextField

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSSecureTextField_Class/index.html

Ich vermute, dies ist eine Swift / Objective-C-Änderung, da es jetzt eine Klasse für sichere Textfelder gibt. Im obigen Link heißt es, Available in OS X v10.0 and later. wenn Sie mehr darüber wissen, wann / warum / welche Versionen von Swift / Objective-C, XCode oder OS X dies

user3731622
quelle
Für die MacOS-Entwicklung ist dies die neue richtige Antwort
Joseph DeCarlo
12

Swift 4 und Xcode Version 9+

Kann über "Secure Text Entry" über Interface Builder eingestellt werden

Sichere Texteingabe über Storyboard-Screenshot überprüft

Hatim
quelle
Hallo, manchmal hebt sicheres Textfeld gelb mit dem Fehler "Starkes Passwort" hervor. Gibt es eine Lösung?
Saravanan
1

Versuchen Sie es mit SwiftUI

TextField ("Email", text: $email)
    .textFieldStyle(RoundedBorderTextFieldStyle()).padding()
SecureField ("Password", text: $password)
    .textFieldStyle(RoundedBorderTextFieldStyle()).padding()
phil
quelle
0

Sie können dies tun, indem Sie die Eigenschaften des Textfelds aus dem Attributinspektor verwenden

Tippen Sie im Storyboard auf Ihr Textfeld, gehen Sie zum Attributinspektor und aktivieren Sie das Kontrollkästchen "Sichere Texteingabe". SS wird hinzugefügt, um eine grafische Übersicht zu erhalten

Vicky Dungranee
quelle
-1

Programmatisch (Swift 4 & 5)

self.passwordTextField.isSecureTextEntry = true
Arunabh Das
quelle
1
Für Swift 3 und höher wurde die Syntax geändert, siehe die obigen Antworten.
Mojtaba al Moussawi
Meine Antwort ist für Swift 4
Arunabh Das
2
Sind Sie sicher, dass dies Swift 4 ist? Es gibt keine Eigenschaft oder Methode mit dem Namen sicher für ein Textfeld ... für Swift 4 verwenden wir self.passwordTextField.isSecureTextEntry = true
mojtaba al moussawi