首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UITextField上的强密码叠加

UITextField上的强密码叠加
EN

Stack Overflow用户
提问于 2019-11-20 10:30:02
回答 3查看 9.2K关注 0票数 32

我在UITextField上遇到了奇怪的覆盖。我在使用textContentType = .passwordisSecureTextEntry = true类型的字段。我也有眼睛按钮,以取消隐藏密码字符与改变的isSecureTextEntry = false

当我这样做,我的密码字符是可见的,但当我键入至少一个新字符强密码覆盖显示,这是没有办法隐藏它。

这是什么,如何防止它的出现?

//编辑:

我已经做了扩展来禁用AutoFill,它的工作是:

代码语言:javascript
运行
复制
extension UITextField {
    func disableAutoFill() {
        if #available(iOS 12, *) {
            textContentType = .oneTimeCode
        } else {
            textContentType = .init(rawValue: "")
        }
    }
}
EN

回答 3

Stack Overflow用户

发布于 2020-12-16 02:16:07

找到了解决这个问题的唯一办法。

代码语言:javascript
运行
复制
textField.textContentType = .oneTimeCode

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

这个解决方案来自苹果开发者论坛尤里·佩图霍夫的答案。

票数 9
EN

Stack Overflow用户

发布于 2020-12-16 10:35:19

其他答案会导致文本向用户显示,这并不是理想的IMO。

要解决这个问题:

将密码字段的内容类型设置为:.oneTimePad,将字段上的安全文本条目设置为: false,然后添加以下内容(或任何对您有用的内容):

代码语言:javascript
运行
复制
func textFieldDidBeginEditing(_ textField: UITextField) { 
    if(textField == self.passwordTextField) { self.passwordTextField.isSecureTextEntry = true } }

备注--我试着把这个^变化放在viewWillAppear中,但是丑陋的黄色框仍然出现。

这是我找到的唯一一种保护文本/一开始就隐藏的方法(如果你想要的话,你可以用“显示/隐藏”按钮切换它,苹果公司的自动完成的废话就不会回来了)

票数 0
EN

Stack Overflow用户

发布于 2021-02-06 05:55:37

请相信克里斯蒂安·迪亚兹的回答:这似乎是一个错误,在iOS模拟器上使用版本14.0及以上的安全文本字段。我建议使用13.7版本的模拟器,就在14.0之前。如果您没有看到选择13.7设备的选项,请单击:

Xcode ->首选项->组件-> iOS 13.7模拟器

这将在iOS 12之前为设备安装iPhone 13.7模拟器。

只需确保你在模拟器的顶部看到13.7。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58952151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档