题
我需要显示一个 UITableView
包含用户的帐户凭据。为此,我正在使用 UILabels
在 UITableViewCell
. 。当我显示他们的密码时,我显然只想显示占位符密码字符而不是他们的实际密码,类似于 UITextField
当它设置为安全文本输入模式时。事实上,我想使用与 UITextField
使用,而不是“*”。
我的问题是,密码字符的字符代码是什么 UITextField
当它处于安全模式时?
解决方案
为什么不直接使用 UITextField,使该字段不可编辑并更改边框样式以使其看起来像 UILabel?
其他提示
这是一种执行此操作的方法,例如,在原型单元格的详细文本标签中“用点线”显示密码:
// 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;
密码字符可能是一个项目符号。在 Mac 上,option-8 会在您键入的位置插入一个。字符调色板说它是 Unicode 2022 和UTF8 E2 80 A2.
虽然是一个很老的问题,但我遇到了同样的问题。benzado 有正确的想法,尽管我认为 Unicode 应该是 25cf. 。在我看来,这正是苹果在安全 UITextField 中使用的点。
在 iOS 10 中,BLACK CIRCLE Unicode 字符不再与安全文本字段一致。要使用的字符是 ⦁“Z NOTATION SPOT”(U+2981)。
在 Swift 3 中你可以使用:
passwordLabel.text = String(password.characters.map { _ in return "•" })
不隶属于 StackOverflow