首页 > 解决方案 > 本机 UITextField 安全文本输入强制使用英语(美国)键盘

问题描述

我有一个非常简单的登录页面(登录名+密码)。

我的用户是法国人,所以他们的键盘是法国人(azerty)。

从 iOS 12 开始,当他们单击受保护的密码文本字段时,即使他们的设备上没有安装此键盘,键盘也会切换为英语 (qwerty)。此外,如果他们没有安装此键盘,他们将无法切换回他们的键盘。

我发现如果我停用安全文本输入,问题就不会出现。

我还尝试以编程方式设置 isSecureTextEntry,并且出现了错误。

我正在添加两个屏幕截图,每个文本字段一个。

非常感谢您的时间和帮助。

在此处输入图像描述

在此处输入图像描述

标签: iosswiftkeyboarduitextfield

解决方案


我有同样的问题,在我的情况下,这个错误只出现在注册屏幕上。

原因是 Apple 检查类/函数/参数的名称以确定(使用启发式方法)它是否是登录/注册屏幕并自动激活自动填充密码。通过在我的代码中将“register”替换为“Patate”,问题就解决了。

我使用带有 2 个文本字段(带有安全文本条目)和一个名为“RegisterViewController”的视图控制器的示例应用程序重现了这个问题。使用“PatateViewController”,我没有问题。

此外,我在控制台中有此错误:[AutoFill] Cannot show Automatic Strong Passwords for app bundleID: *** due to error: iCloud Keychain is disabled

来源:https ://developer.apple.com/documentation/security/password_autofill

希望您能找到比重命名代码更好的方法。


推荐阅读