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?

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;

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


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


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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.