【问题标题】:How do I display a substitute password character in a UILabel?如何在 UILabel 中显示替代密码字符?
【发布时间】:2010-09-10 04:00:12
【问题描述】:

我需要显示一个包含用户帐户凭据的UITableView。为此,我在UITableViewCell 中使用UILabels。当我显示他们的密码时,我显然只想显示一个占位符密码字符而不是他们的实际密码,类似于设置为安全文本输入模式时的UITextField。事实上,我想使用与UITextField 相同的字符,而不是'*'。

我的问题是,密码字符UITextField 在安全模式下的字符代码是什么?

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    这是一种方法,例如,在 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;
    

    【讨论】:

    • 超级棒!你节省了我的时间。
    【解决方案2】:

    为什么不直接使用 UITextField,使字段不可编辑并更改边框样式使其看起来像 UILabel?

    【讨论】:

      【解决方案3】:

      密码字符可能是子弹。在 Mac 上,option-8 将在您输入的任何位置插入一个。字符面板显示它是 Unicode 2022 和 UTF8 E2 80 A2

      【讨论】:

        【解决方案4】:

        在 iOS 10 中,黑圈 Unicode 字符不再与安全文本字段一致。要使用的字符是⦁ "Z NOTATION SPOT" (U+2981)。

        【讨论】:

          【解决方案5】:

          虽然是一个非常古老的问题,但我遇到了同样的问题。 benzado 有正确的想法,虽然我认为 Unicode 应该是25cf。在我看来,这正是苹果在安全 UITextField 中使用的点。

          【讨论】:

            【解决方案6】:

            在 Swift 3 中,您可以使用:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-06-07
              • 1970-01-01
              • 2012-06-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多