如何启用/禁用特定文本字段的 OneTimeCode 功能?

Gau*_*ole 5 ios swift

对于 OTP 文本字段,我已将 textContentType 设置为 oneTimeCode

if #available(iOS 12.0, *) {
     otpTextField.textContentType = .oneTimeCode
}    
Run Code Online (Sandbox Code Playgroud)

现在,当我们收到 OTP 时,iOS 会为所有键盘类型设置为数字键盘的文本字段显示 OTP,例如)安全令牌、邮政编码等。

应用程序应该只为 textContentType 为 oneTimeCode 的文本字段填充 OTP,而不是应用程序中的所有文本字段。

如何为特定文本字段启用/禁用 oneTimeCode?

Sim*_*oss 5

我尝试了各种内容类型以防止在键盘上建议 OTP,最后这个有效

if #available(iOS 12.0, *) {
    textField.textContentType = .username
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下, UITextField 正在捕获一个引脚,并且还具有

keyboardType = .numberPad
Run Code Online (Sandbox Code Playgroud)

虽然这可能没什么区别


gbk*_*gbk 0

您需要将textContentType属性更改UITextField为以下类型之一:

在此输入图像描述

如果您在所有文本字段上启用了此代码,则意味着该输入类型textFields是上面支持的列表中的一种。所以请确保您textContentType的文本字段正确无误

笔记:

  • 如果您对安全代码输入文本字段使用自定义输入视图,iOS 无法显示必要的自动填充 UI ((c) Apple)。
  • 确保短信中传入的消息包含“代码”或“密码”并且消息可以复制。
  • 可以从iOS 12

参考官方文档和这个