Ukryj hasło za pomocą „•••••••” w polu tekstowym

135

W mojej aplikacji jest pole tekstowe, w którym użytkownik musi wpisać hasło i chcę, aby po wprowadzeniu znaku zmieniło go na „•”. Jak mogę to zrobić?

Clément Bisaillon
źródło

Odpowiedzi:

308

Możesz to osiągnąć bezpośrednio w Xcode:

wprowadź opis obrazu tutaj

Ostatnie pole wyboru, upewnij się, że securejest zaznaczone.

Lub możesz to zrobić za pomocą kodu:

Określa, czy obiekt tekstowy powinien ukrywać wprowadzany tekst.

Deklaracja

optional var secureTextEntry: Bool { get set }

Dyskusja

Ta właściwość jest ustawiona falsedomyślnie. Ustawienie tej właściwości na truepowoduje utworzenie obiektu tekstowego w stylu hasła, który ukrywa wprowadzany tekst.

przykład:

texfield.secureTextEntry = true
meda
źródło
1
W nowym XCode8 i nowszych musimy dodać secureTextEntry w kolumnie atrybutu runtime
Balagurubaran
57

w wersji Swift 3.0 lub nowszej

passwordTextField.isSecureTextEntry = true
kishu mewara
źródło
13

W XCode 6.3.1, jeśli używasz a NSTextField, nie zobaczysz pola wyboru dla secure.

Zamiast używać NSTextFielduseNSSecureTextField

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

Zgaduję, że jest to zmiana Swift / Objective-C, ponieważ jest teraz klasa dla bezpiecznych pól tekstowych. W powyższym linku jest napisane, że Available in OS X v10.0 and later. jeśli wiesz więcej o tym, kiedy / dlaczego / jakie wersje Swift / Objective-C, XCode lub OS X to

user3731622
źródło
Dla rozwoju MacOS jest to nowa poprawna odpowiedź
Joseph DeCarlo
13

Swift 4 i Xcode w wersji 9+

Można ustawić za pomocą funkcji „Bezpieczne wprowadzanie tekstu” w programie Interface Builder

Bezpieczne wprowadzanie tekstu sprawdzane za pomocą zrzutu ekranu scenorysu

Hatim
źródło
Cześć, Czasami bezpieczne pole tekstowe jest podświetlane na żółto i zawiera błąd „Silne hasło”. Czy jest jakieś rozwiązanie?
Saravanan,
1

W przypadku SwiftUI spróbuj

TextField ("Email", text: $email)
    .textFieldStyle(RoundedBorderTextFieldStyle()).padding()
SecureField ("Password", text: $password)
    .textFieldStyle(RoundedBorderTextFieldStyle()).padding()
phil
źródło
0

Możesz to zrobić, używając właściwości pola tekstowego z Inspektora atrybutów

Stuknij w Twoje pole tekstowe w scenorysie i przejdź do Inspektora atrybutów i po prostu zaznacz pole wyboru „Bezpieczne wprowadzanie tekstu” SS jest dodawane do graficznego przeglądu, aby osiągnąć to samo

Vicky Dungranee
źródło
-1

Programowo (Swift 4 i 5)

self.passwordTextField.isSecureTextEntry = true
Arunabh Das
źródło
1
Dla Swift 3 i późniejszych składnia została zmieniona, zapoznaj się z odpowiedziami powyżej.
mojtaba al moussawi
Moja odpowiedź brzmi: Swift 4
Arunabh Das
2
Czy na pewno jest to Swift 4? Nie ma właściwości ani metody o nazwie secure dla textField ... dla swift 4 używamy self.passwordTextField.isSecureTextEntry = true
mojtaba al moussawi