iOS 12 OTP键盘建议

时间:2018-10-08 14:03:20

标签: objective-c ios12

我正在尝试将一次性代码从SMS传输到键盘上方的字段,如图所示。

但是由于某些原因,键盘上方的字段未显示。

代码:self.valueTextField.textContentType = UITextContentTypeOneTimeCode;

UI层次结构:

+ UIView

  • CustomContentView
  • UIImageView
  • UITextField-valueTextField
  • UITextFieldContentView

我已阅读以下材料:soQuestionapple docs,并看到警告:

  

如果您在安全代码输入文本字段中使用自定义输入视图,则iOS无法显示必要的自动填充UI。

...但是我不明白自定义输入视图的含义。

我也有UITextField的类别。会影响工作吗?

我对任何想法都很高兴,谢谢!

2 个答案:

答案 0 :(得分:1)

好的。这就是我所能发现的。关于代码,上面我已经描述了。不需要客户端上的其他设置。但是您需要注意SMS消息的文本。例如,我附加了两条消息。

first pic 在第一条消息中,我们的代码由系统定义为电话号码。如果单击它,我们甚至可以调用它。但是为什么我们需要调用一次性代码? :)

second pic 在第二张图中,代码被定义为一次性的,正是我们所需要的。如果单击它,系统将提供将其复制到剪贴板的功能。

有什么区别?不幸的是,尚不清楚通过SMS解析文本的规则是什么。但是我们可以通过以下方式检查您的文本:

如果您在文本字段中设置了属性textContentType,但对您没有任何帮助,那么您需要检查的第一件事是操作系统是否正确确定了代码。为此,只需转到消息应用程序并检查代码:

  1. 带下划线的蓝色字体颜色-系统无法识别 一次性代码。
  2. 黑色字体颜色(默认情况下)和灰色下划线-可以!

最后,在第一种情况下,您应该检查消息文本中是否包含错误字符。

PS仅是正确和不正确SMS的几个示例:

  • SMS代码:正确的12345英镑
  • SMS代码:正确的12345美元
  • SMS代码:12345№正确
  • SMS代码№1:12345错误

答案 1 :(得分:0)

我被手机上的“自动填充密码”关闭了。 似乎需要开启此功能才能工作。