iOS 12 OTP keyboard suggestion

浪子不回头ぞ 提交于 2020-06-09 05:45:27

问题


I'm trying to implement the transfer of a one-time code from SMS to the field above the keyboard, as in the image.

But for some reason the field above the keyboard is not displayed.

Code:self.valueTextField.textContentType = UITextContentTypeOneTimeCode;

UI hierarchy:

+UIView

  • CustomContentView
  • UIImageView
  • UITextField - valueTextField
  • UITextFieldContentView

I have read these materials:soQuestion and apple docs , and I saw a warning:

If you use a custom input view for a security code input text field, iOS cannot display the necessary AutoFill UI.

... but I do not understand what is meant by custom input view.

Also I have category for UITextField. Can it affect the work?

I will be glad to any ideas, thanks!


回答1:


Okay. This is what I could find out. Regarding the code, it is enough that I described above. Additional settings on the client is not required. But you need to pay attention to the text of the SMS message. As an example, I attached two messages.

In the first message, our code is defined by the system as a phone number. We can even call it if we click on it. But why do we need to call a one-time code? :)

In the second image, the code is defined as one-time, just what we need. If we click on it, the system will offer to copy it to the clipboard.

What is the difference? Unfortunately, it is not completely clear by what rule the text is parsed in SMS. But we can check your text in the following way:

If you set a property textContentType to your text field and nothing works for you, the first thing you need to check is whether the operating system determines the code correctly. To do this, simply go to the message application and check the code:

  1. blue font color with underscore - the system did not recognize one-time code.
  2. black font color (as default) with a gray underscore - it's okay!

At the end, in the first case, you should check the text of the message for the contents of incorrect characters.

PS Just a couple of examples of correct and incorrect SMS:

  • SMS-code: 12345 £ correct
  • SMS-code: 12345 $ correct
  • SMS-code: 12345 № correct
  • SMS-code №1: 12345 incorrect



回答2:


I got caught out by the fact "Autofill PAsswords" was turned off on the phone. It seems that it needs to be on for this functionaility to work.



来源:https://stackoverflow.com/questions/52704028/ios-12-otp-keyboard-suggestion

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!