iOS 12 中的自动填充用户名和密码

AutoFill username and password in iOS 12

我在 iOS 11 中成功地为存储的用户名和密码建议实现了自动填充。
我的登录视图控制器中有两个文本字段,一个用于电子邮件,一个用于密码。内容类型定义如下:


电子邮件/用户名文本字段配置


密码文本字段配置

这曾经在 iOS 11 中工作得很好,但是在将我的开发 iPad 升级到 iOS 12 之后,该应用程序会建议用户名字段的电子邮件,并且以下情况会发生编辑密码字段:


在我的创建帐户视图控制器中,我有 3 个文本字段:电子邮件、密码、重复密码。他们的内容模式设置如下:

编辑电子邮件地址字段时,它会正确建议一个电子邮件地址。但是,对于密码和重复密码字段,它会建议存储的密码,而不是建议新密码。


我试过的


备注


知道我需要更改什么以便存储的用户名和密码建议再次在 iOS 12 中工作吗?

谢谢!



编辑

根据下面@kralex 的要求,这是故事板中登录视图控制器的视图层次结构:

...在设备上:

Apple 正在做一些试探法以最好地猜测您可能需要什么:自动填充或新密码。但是在某些情况下它可能会失败。

在您的情况下,问题与 "Create Account Button" 有关。它让系统认为这是一个注册表单。

最简单的修复方法:用 UILabel 替换注册 UIButton 并添加 tapRecognizer 来处理点击。

我遇到了类似的问题,发现 Apple 的启发式方法正在窃听视图控制器的 class 名称 以确定是建议新密码还是使用一个现有的。似乎即使我在 UITextField 上设置了正确的 textContentType,它仍然会使用控制器的名称。

我的UIViewController在同一屏幕上同时注册和登录,但控制器名为RegistrationViewController。我把它改成LoginViewController来测试,发现登录部分开始工作了,但是注册位就像登录一样!即使设置了正确的 textContentTypes!

我不得不重命名我的 UIViewController 一些东西,这并不意味着要注册或登录才能真正尊重我的 textContentType。太可怕了。真恶心。

我想至少部分原因 is/was 发生在你身上是因为你有单词 Welcome 作为你的视图控制器的开头,听起来令人难以置信。

顺便说一句,我尝试了RegistrationLoginViewController(它选择了注册设置)和LoginRegistrationViewController(它选择了登录设置),但都没有用。如果你想在同一个控制器上同时使用,它必须避免 Apple 的启发式方法。