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?

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

1
Im neuen XCode8 und höher müssen wir SecureTextEntry in der Laufzeitattributspalte hinzufügen
Balagurubaran


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


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


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()


-1

Programmatisch (Swift 4 & 5)

self.passwordTextField.isSecureTextEntry = true

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