Jak zasłonić tekst w polu hasła w aplikacji na iPhone'a?

90

Mam pole hasła w mojej aplikacji (UITextField). Gdy użytkownik wprowadza tekst w polu, chcę, aby był on wyświetlany *zamiast tekstu, który wprowadził.

Próbowałem użyć UIControlEventEditingDidEndz, UITextFieldale *na końcu edycji wyświetla się tylko jeden , ale chcę, aby wyświetlał *s, gdy tylko zostanie wprowadzony tekst, jak w każdym polu hasła e-mail online. Jak mogę uzyskać pożądane zachowanie?

TheNeil
źródło

Odpowiedzi:

174

Naprawdę nie rozumiem twojego pytania, ale domyślam się, że chcesz mieć UITextField, który wyświetla kropki dla znaków, tak jak każde pole hasła na iPhonie. W tym celu chcesz ustawić właściwość secureTextEntry tego UITextField (UITextField ma taką właściwość, ponieważ jest zgodna z protokołem UITextInputTraits) na TAK:

textfield.secureTextEntry = YES;
drvdijk
źródło
7
Czy mogę ustawić inne znaki zamiast kropek?
Vineesh TP
154

Możesz również ustawić to w Interface Builder. Wybierz pole tekstowe i zaznacz „bezpieczne” ustawienie w Inspektorze.

bezpieczne ustawienie w Interface Builder

Nathaniel Martin
źródło
7
Taka prosta rzecz, ale mało oczywista.
Brian Moeskau
Dzięki, zwykle nie widzę instrukcji konstruktora interfejsu użytkownika.
0

Możesz dodać ścieżkę klucza secureTextEntry typu Boolean i zaznaczyć ją w atrybutach środowiska wykonawczego zdefiniowanych przez użytkownika w Inspektorze tożsamości.

wprowadź opis obrazu tutaj

Vivekanandan
źródło
Należy preferować opcję „Bezpieczne” w atrybutach niż używanie takich atrybutów środowiska wykonawczego.
axiixc
0

Jeśli używasz najnowszej wersji Xcode (wersja 9), kliknij pole UITextField, dla którego chcesz ustawić dane wejściowe jako hasło, a następnie kliknij inspektor atrybutów i zaznacz „Bezpieczne wprowadzanie tekstu”.

Donna
źródło
0

Swift 3.3

textfield.isSecureTextEntry = true
Mike.R
źródło