2008-09-17 16 views
8

J'ai besoin d'afficher un UITableView contenant les informations d'identification d'un compte d'utilisateur. Pour cela, j'utilise UILabels dans UITableViewCell. Lorsque j'affiche leur mot de passe, je voudrais évidemment afficher un caractère de mot de passe à la place de leur mot de passe réel, similaire à un UITextField lorsqu'il est configuré pour sécuriser le mode de saisie de texte. En fait, je voudrais utiliser le même caractère que UITextField utilisations, au lieu de '*'.Comment afficher un mot de passe de remplacement dans un UILabel?

Ma question est, quel est le code de caractère pour le mot de passe le UITextField quand il est en mode sécurisé?

Répondre

8

Pourquoi ne pas simplement utiliser un UITextField, rendre le champ non modifiable et changer le style de bordure pour qu'il ressemble à un UILabel?

3

Le caractère de mot de passe est probablement une puce. Sur un Mac, l'option-8 en insère une là où vous tapez. La palette de caractères indique que c'est Unicode et UTF8 E2 80 A2.

2

Bien qu'une très vieille question, je suis tombé sur le même problème. benzado a l'idee droite, bien que je pense que l'Unicode devrait être 25cf. Pour moi, il semble que ce soit exactement la dot Apple utilise dans un UITextField sécurisé.

17

est ici une façon de le faire, par exemple, pour afficher le mot de passe «en pointillé » dans un detailTextLabel Cell Prototype:

// self.password is your password string 
NSMutableString *dottedPassword = [NSMutableString new]; 

for (int i = 0; i < [self.password length]; i++) 
{ 
    [dottedPassword appendString:@"●"]; // BLACK CIRCLE Unicode: U+25CF, UTF-8: E2 97 8F 
} 

cell.detailTextLabel.text = dottedPassword; 
+0

Great! Je vous remercie. –

+0

Superp! Tu as sauvé mon temps. –

0

Dans iOS 10, le caractère BLACK CIRCLE Unicode est pas compatible avec le texte sécurisé champ plus. Le caractère à utiliser est ⦁ "Z NOTATION SPOT" (U + 2981).

1

Swift 3, vous pouvez utiliser:

passwordLabel.text = String(password.characters.map { _ in return "•" })