如何在UITextField中隐藏密码,例如" *****"?

时间:2018-01-10 10:41:25

标签: ios uitextfield swift4

如何隐藏txtPassword.isSecureTextEntry = true 中的密码,例如" *****"

要隐藏密码,我使用了以下代码

"myrole"

但这会显示为“•••••••”,但我需要" *******"

4 个答案:

答案 0 :(得分:0)

要实现相同目的,您可以使用普通文本字段而不使用安全输入选项。当用户输入一个字符时,将其保存到字符串变量中,并在文本字段中将其替换为您想要呈现的字符而不是项目符号。

将viewDidLoad()中的textField委托设置为:

textField.delegate = self

然后只需使用shouldChangeCharactersInRange(),如下所示:

这是代码(将密码显示为***):

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
     {
          password = password+string
          textField.text = textField.text!+"*"
          return false
     }

textField中的输出将是***

答案 1 :(得分:0)

您可以像这样使用自定义UITextField类:

UITextField secureTextEntry bullets with a custom font?

将objective-c转换为swift:https://objectivec2swift.com/

答案 2 :(得分:0)

明确的权利基本上有三种选择:

  1. 使用自定义字体:如下所示::not() selector
  2. 使用UITextField的自定义子类:在内部存储实际文本,仅显示“星号”字符。
  3. 不要这样做:用户期望在整个设备上获得一致的体验,您可能会失去其他功能(见下文)。
  4. 现在要注意的一件事是,安全条目UITextField不仅仅显示'点'字符。如果您在输入字符时观察它是如何工作的,它会显示一小段时间,然后被“点”替换,从而让用户有时间看到他们输入了正确的字符。如果您快速键入,则所有字符将立即替换为“点”,并添加下一个字符。如果您使用自己的版本来替换“点”字符,则必须复制该功能或丢失它。

答案 3 :(得分:-1)

获得所需行为的最简单方法是使用某种允许此自定义的自定义密码字段。

我不推荐它。