对于动态口令文本字段,我已经将textContentType设置为oneTimeCode
if #available(iOS 12.0, *) {
otpTextField.textContentType = .oneTimeCode
} 现在,当我们收到动态口令时,iOS会显示键盘类型设置为numberPad的所有文本字段的动态口令,例如)安全令牌、邮政编码等。
应用程序应该只为文本字段填充动态口令,其中textContentType为oneTimeCode,而不是应用程序中的所有文本字段。
如何对特定文本字段启用/禁用oneTimeCode?
发布于 2020-10-23 16:59:58
我尝试了各种内容类型,以防止在键盘上建议使用OTP,最后这一种方法起作用了
if #available(iOS 12.0, *) {
textField.textContentType = .username
}在这种情况下,UITextField正在捕获引脚,并且还具有
keyboardType = .numberPad尽管这可能不会有什么不同
发布于 2020-04-29 14:04:29
您需要将UITextField中的textContentType属性更改为以下类型之一:

如果您在所有textFields上都启用了此代码,这意味着此textFields的输入类型是上面支持的列表中的一个。所以要确保textFields中有正确的textContentType
注意:
iOS 12的
对Official doc和this one的引用
发布于 2021-07-12 17:04:15
我的解决方案是禁用文本字段的自动更正:
textField.autocorrectionType = .no如果需要自动更正且不需要动态口令建议,则必须显式定义textContentType属性选项。(您可以在此页面中找到这些选项:https://developer.apple.com/documentation/uikit/uitextcontenttype)。但是,如果这些选项都不符合您的字段语义,最好设置unspecified以避免错误的建议。
https://stackoverflow.com/questions/61495065
复制相似问题