ios - 本机 UITextField 安全文本输入强制使用英语(美国)键盘
问题描述
我有一个非常简单的登录页面(登录名+密码)。
我的用户是法国人,所以他们的键盘是法国人(azerty)。
从 iOS 12 开始,当他们单击受保护的密码文本字段时,即使他们的设备上没有安装此键盘,键盘也会切换为英语 (qwerty)。此外,如果他们没有安装此键盘,他们将无法切换回他们的键盘。
我发现如果我停用安全文本输入,问题就不会出现。
我还尝试以编程方式设置 isSecureTextEntry,并且出现了错误。
我正在添加两个屏幕截图,每个文本字段一个。
非常感谢您的时间和帮助。
解决方案
我有同样的问题,在我的情况下,这个错误只出现在注册屏幕上。
原因是 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
希望您能找到比重命名代码更好的方法。
推荐阅读
- sql - 如何使用 pandas 明智地更新/插入(upsert)大表块
- java - 我正在尝试制作一个在键入“空格”键时发射子弹的游戏
- dart - 飞镖如何将列表分配给新的列表变量
- c# - C# 使用“UploadFromStream”方法将文件从 MongoDB 迁移到 Azure Blob 存储不起作用
- java - 清单合并失败,出现多个错误,org.gradle.api.tasks.TaskExecutionException:任务执行失败
- php - TYPO3 8.7.12:具有相同用户名和组但在不同 sysfolders 中的多个前端用户
- spring-boot - Keycloak 说 403 Forbidden for HTTP 方法而不是 GET
- python - 使用 Python 比较工作表中的两列并打印匹配项
- java - 如何访问使用蓝牙连接的设备的电话簿?
- cassandra - 如果直流停机,我应该担心 cassandra 提示吗?