UITextField 上的强密码覆盖

Den*_*Dog 23 xcode uitextfield ios swift

我面临着奇怪的覆盖UITextField。我正在使用类型textContentType = .password和字段isSecureTextEntry = true。我也有眼睛按钮来取消隐藏密码字符isSecureTextEntry = false

当我这样做时,我的密码字符是可见的,但是当我输入至少一个新字符时,强密码覆盖出现并且无法隐藏它。

那是什么以及如何防止显示它?

强密码覆盖

// 编辑:

我做了扩展以禁用自动填充,它的工作原理:

extension UITextField {
    func disableAutoFill() {
        if #available(iOS 12, *) {
            textContentType = .oneTimeCode
        } else {
            textContentType = .init(rawValue: "")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 5

找到了这个问题的唯一解决方案。

textField.textContentType = .oneTimeCode
Run Code Online (Sandbox Code Playgroud)

否则,iOS 12 将 PasswordAutofill 用于任何安全字段(textField.isSecureTextEntry = true)。

这个解决方案来自苹果开发者论坛Yuri Petukhov的回答。

  • 这只是将该字段变成一次性代码字段。就像发送给用户的 6 位代码一样。所以是的..这确实在视觉上修复了它。但就自动填充而言,它不再是真正的密码字段。 (2认同)