【问题标题】:iOS 12 OTP keyboard suggestioniOS 12 OTP 键盘建议
【发布时间】:2019-10-21 23:35:27
【问题描述】:

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

但由于某种原因,键盘上方的字段没有显示。

代码:self.valueTextField.textContentType = UITextContentTypeOneTimeCode;

UI 层次结构:

+UIView

  • 自定义内容视图
  • UIImageView
  • UITextField - valueTextField
  • UITextFieldContentView

我已经阅读了这些材料:soQuestionapple docs,我看到了一个警告:

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

...但我不明白自定义输入视图是什么意思。

我还有 UITextField 的类别。会不会影响工作?

我会很高兴有任何想法,谢谢!

【问题讨论】:

    标签: objective-c ios12


    【解决方案1】:

    好的。这是我能查到的。关于代码,我上面描述的就足够了。不需要客户端上的其他设置。但是您需要注意短信的文本。例如,我附上了两条消息。

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

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

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

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

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

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

    PS 仅举几个正确和错误 SMS 的例子:

    • 短信代码:12345 英镑正确
    • 短信代码:12345 $ 正确
    • 短信代码:12345 №正确
    • 短信代码№1:12345不正确

    【讨论】:

      【解决方案2】:

      我被手机上的“自动填充密码”已关闭这一事实所吸引。 似乎需要开启此功能才能正常工作。

      【讨论】:

        猜你喜欢
        • 2019-05-02
        • 2018-01-04
        • 2018-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-03
        • 2015-11-02
        • 2014-05-15
        相关资源
        最近更新 更多