我想禁用操作系统的自动文本捕获,如果您在应用程序中输入 UITextField/UITextView 操作系统捕获此文本(如果在字典中找不到),它将作为纯文本存储在 / 中的dynamic-text.dat 文件中根/库/键盘
现在,如果您打开并阅读此文件,您可以轻松阅读您在应用程序中键入的内容。
我的要求是,如何禁用此功能,以便在我的应用程序中,操作系统不会将输入的文本捕获到此文件中?
你甚至可以在 iPhone Simulator 上查看这一点
在模拟器中,如果我有一个UITextField
设置为“安全”(自动完成设置为关闭,尽管这应该是默认设置)我从未看到我在〜中输入的任何文本/Library/Application Support/iPhone Simulator/User/Library/Keyboard/dynamic-text.dat
,虽然一个UITextField
设置为自动完成确实有文本在那里结束。
如果我关闭之前捕获的字段的自动更正,则我在该文件中不会再看到我输入的任何条目。
我在模拟器和设备上都尝试了这一点 - 在设备上我使用安全和不安全的文本字段运行相同的测试应用程序(我交替打开和关闭自动更正),然后使用 SpyPhone 检查键盘缓存。同样,在文本字段被标记为安全或关闭自动更正的所有情况下,我没有看到我输入的任何内容显示在键盘缓存中,如果我将其输入到启用了自动更正的文本字段中,我会看到 - 只是为了需要明确的是,如果该字段也被标记为安全(而且我也不确定它是否尝试自动更正),那么即使在 IB 定义的文本字段中显式打开自动更正也不会记录任何内容。
现在我确实注意到,如果我尝试使用 UITextView 而不是 UITextField,在这种情况下,即使关闭自动更正也不会阻止记录文本。这似乎是一种疏忽,而不是设计选择。解决方法是使用 UITextField,但这并不总是可行......我会提交一个Radar与苹果公司的合作。
我还可以验证我使用的常用密码(在 Safari 或应用程序中)没有出现在 SpyPhone 中,因此它们不在缓存中。但几乎所有收集密码的应用程序都使用 UITextField 来执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)