我需要显示一个UITableView
包含用户的帐户凭据。为此,我使用UILabels
in UITableViewCell
。当我显示他们的密码时,我显然只想显示一个占位符密码字符而不是他们的实际密码,类似于将UITextField
其设置为安全文本输入模式时。事实上,我想使用与使用相同的字符UITextField
,而不是“*”。
我的问题是,UITextField
当它处于安全模式时,密码字符的字符代码是什么?
我需要显示一个UITableView
包含用户的帐户凭据。为此,我使用UILabels
in UITableViewCell
。当我显示他们的密码时,我显然只想显示一个占位符密码字符而不是他们的实际密码,类似于将UITextField
其设置为安全文本输入模式时。事实上,我想使用与使用相同的字符UITextField
,而不是“*”。
我的问题是,UITextField
当它处于安全模式时,密码字符的字符代码是什么?
这是一种方法,例如,在 Prototype Cell 的 detailTextLabel 中显示“点缀”的密码:
// 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;
为什么不直接使用 UITextField,使字段不可编辑并更改边框样式以使其看起来像 UILabel?
密码字符可能是子弹。在 Mac 上,option-8 将在您输入的任何位置插入一个。Character Palette 显示它是 Unicode 2022和 UTF8 E2 80 A2。
在 iOS 10 中,黑圈 Unicode 字符不再与安全文本字段一致。要使用的字符是⦁“Z NOTATION SPOT”(U+2981)。
虽然是一个非常古老的问题,但我遇到了同样的问题。benzado 有正确的想法,虽然我认为 Unicode 应该是25cf。在我看来,这正是苹果在安全 UITextField 中使用的点。
在 Swift 3 中,您可以使用:
passwordLabel.text = String(password.characters.map { _ in return "•" })