¿Cómo muestro un carácter de contraseña sustituto en una UILabel?
-
01-07-2019 - |
Pregunta
Tengo la necesidad de mostrar un UITableView
que contiene las credenciales de la cuenta de un usuario.Para esto estoy usando UILabels
en UITableViewCell
.Cuando muestro su contraseña, obviamente me gustaría mostrar simplemente un carácter de contraseña de marcador de posición en lugar de su contraseña real, similar a UITextField
cuando está configurado en modo de entrada de texto seguro.De hecho, me gustaría usar el mismo personaje que UITextField
utiliza, en lugar de '*'.
Mi pregunta es, ¿cuál es el código de carácter para el carácter de contraseña? UITextField
cuando está en modo seguro?
Solución
¿Por qué no simplemente usar un UITextField, hacer que el campo no sea editable y cambiar el estilo del borde para que parezca un UILabel?
Otros consejos
Aquí hay una manera de hacer esto, por ejemplo, para mostrar la contraseña "punteada" en la etiqueta de texto detallada de una celda prototipo:
// 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;
El carácter de la contraseña probablemente sea una viñeta.En una Mac, la opción 8 insertará uno dondequiera que esté escribiendo.La paleta de caracteres dice que es Unicode. 2022 y UTF8 E280A2.
Aunque es una pregunta muy antigua, me encontré con el mismo problema.Benzado tiene la idea correcta, aunque creo que Unicode debería ser 25cf.A mí me parece que ese es exactamente el punto que usa Apple en un UITextField seguro.
En iOS 10, el carácter Unicode del CÍRCULO NEGRO ya no es coherente con el campo de texto seguro.El carácter a utilizar es ⦁ "PUNTO DE NOTACIÓN Z" (U+2981).
En Swift 3 puedes usar:
passwordLabel.text = String(password.characters.map { _ in return "•" })