Comment masquer du texte dans un champ de mot de passe dans une application iPhone?

90

J'ai un champ de mot de passe dans mon application (UITextField). Lorsque l'utilisateur entre du texte dans le champ, je souhaite qu'il s'affiche à la *place du texte qu'il a saisi.

J'ai essayé d'utiliser le UIControlEventEditingDidEndof UITextFieldmais il n'en affiche qu'un *à la fin lors de l'édition, mais je veux qu'il affiche le *s dès qu'un texte est entré, comme dans n'importe quel champ de mot de passe de courrier électronique en ligne. Comment puis-je obtenir le comportement souhaité?

TheNeil
la source

Réponses:

174

Je ne comprends pas vraiment votre question, mais je suppose que vous voulez un UITextField qui affiche des points pour les caractères, ce que fait chaque champ de mot de passe sur l'iPhone. Pour cela, vous souhaitez définir la propriété secureTextEntry de cet UITextField (UITextField a une telle propriété car il est conforme au protocole UITextInputTraits) sur YES:

textfield.secureTextEntry = YES;
Drvdijk
la source
7
Puis-je définir d'autres personnages au lieu de points?
Vineesh TP
154

Vous pouvez également définir cela dans Interface Builder. Sélectionnez votre champ de texte et vérifiez le paramètre «sécurisé» dans l'inspecteur.

paramètre sécurisé dans Interface Builder

Nathaniel Martin
la source
7
Une chose si simple, mais pas très évidente.
Brian Moeskau
Merci, je ne vois généralement pas les instructions du constructeur de l'interface utilisateur.
0

Vous pouvez ajouter un chemin d'accès de clé secureTextEntry de type Boolean et le cocher dans les attributs d'exécution définis par l'utilisateur dans l'inspecteur d'identité.

entrez la description de l'image ici

Vivekanandan
la source
Vous devriez préférer l'option "Sécuriser" sous les attributs à l'utilisation d'attributs d'exécution comme celui-ci.
axiixc
0

Si vous utilisez la dernière version de Xcode, (version 9), cliquez sur l'UITextField dont vous souhaitez définir l'entrée comme mot de passe, puis cliquez sur l'inspecteur d'attributs et cochez "Saisie de texte sécurisée".

Donna
la source
0

Swift 3.3

textfield.isSecureTextEntry = true
Mike.R
la source