Como faço para exibir um caractere de senha substituto em uma UILabel?
-
01-07-2019 - |
Pergunta
Eu tenho uma necessidade para exibir um UITableView
contendo as credenciais da conta de um usuário. Para isso, eu estou usando UILabels
em UITableViewCell
. Quando eu mostrar a sua senha, eu, obviamente, como para apenas exibir um caractere de senha espaço reservado em vez de sua senha real, semelhante a um UITextField
quando está definido para o modo de entrada de texto segura. Na verdade, eu gostaria de usar o mesmo personagem como usos UITextField
, em vez de '*'.
A minha pergunta é, qual é o código de caracteres para o caractere de senha do UITextField
quando está em modo seguro?
Solução
Porque não basta usar um UITextField, tornar o campo não editável e mudar o estilo de borda para fazer com que pareça um UILabel?
Outras dicas
Aqui está uma maneira de fazer isso, por exemplo, para exibir a senha "pontilhada out" em detailTextLabel de um celular 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;
O caractere de senha é provavelmente uma bala. Em um Mac, a opção-8 irá inserir um onde quer que você está digitando. O Character Palette diz que é Unicode 2022 e UTF8 E2 80 A2 .
Apesar de uma questão muito antiga, me deparei com o mesmo problema. benzado tem a idee direita, embora eu acho que o Unicode deve estar 25cf . Para mim parece que é exatamente os usos ponto de maçã em um UITextField garantiu.
Em iOS 10, o personagem Black Circle Unicode não é consistente com o campo de texto seguro anymore. O personagem de uso é ? "Z NOTATION SPOT" (U + 2981).
Em Swift 3 você pode usar:
passwordLabel.text = String(password.characters.map { _ in return "•" })