90

I have a password field in my application (UITextField). When user enters text in the field, I want it to display * instead of the text they entered.

I have tried using the UIControlEventEditingDidEnd of UITextField but it only shows one * at the end when editing but I want it to display the *s as soon as any text is entered, like in any online email password field. How can I get the desired behavior?

TheNeil
  • 3,321
  • 2
  • 27
  • 52

5 Answers5

174

I don't really understand your question, but I'm guessing you want a UITextField which displays dots for the characters, which every password field on the iPhone does. For this, you want to set the secureTextEntry property of that UITextField (UITextField has such a property because it conforms to the UITextInputTraits protocol) to YES:

textfield.secureTextEntry = YES;
drvdijk
  • 5,556
  • 2
  • 29
  • 48
154

You can also set this in Interface Builder. Select your text field, and check the "secure" setting in the inspector.

secure setting in Interface Builder

user160917
  • 9,211
  • 4
  • 53
  • 63
Nathaniel Martin
  • 2,082
  • 1
  • 14
  • 11
0

You can add a key path secureTextEntry of type Boolean and tick it in the User defined runtime attributes in the Identity Inspector.

enter image description here

Vivekanandan
  • 108
  • 1
  • 4
  • You should prefer the "Secure" option under attributes to using runtime attributes like this. – axiixc Nov 15 '16 at 02:03
0

If you are using the latest version of Xcode, (version 9), click on the UITextField that you want to set the input as password, then click on the attributes inspector and check "Secure Text Entry".

iBug
  • 35,554
  • 7
  • 89
  • 134
Donna
  • 1
  • 1
0

Swift 3.3

textfield.isSecureTextEntry = true
Mike.R
  • 2,824
  • 2
  • 26
  • 34