iOS 14 更新后应用程序在文本字段上冻结

Posted

技术标签:

【中文标题】iOS 14 更新后应用程序在文本字段上冻结【英文标题】:App freezes on textfield after iOS 14 update 【发布时间】:2020-09-29 10:05:29 【问题描述】:

在将 Xcode 更新到 Xcode 12 并将我的物理测试设备升级到 ios 14 后,我的应用程序出现了一个特殊问题。我有两个用于用户名和密码的文本字段,如果我填写用户名,然后单击密码文本字段,键盘会弹出,但应用程序的 CPU 使用率急剧增加到 99%,应用程序冻结。这种情况以前从未发生过,我也没有做出任何应该导致这种情况的更改。我在 iOS 12.4 和 iOS 13.7 设备上测试了相同的构建,它们没有同样的问题。这似乎只发生在 iOS 14 设备上。发生的另一件奇怪的事情是,如果我填写密码,然后填写用户名,则不会出现问题。我没有对 textfields 进行任何更改,唯一与此版本不同的是“archiveRootObject”已被弃用。这可能会导致这里的问题吗?

调试了一段时间后,我还在线程 1 上发现了一条奇怪的消息“应用程序违反了合同,导致 UIApplicationMain() 返回。这一事件将被报道。”以前有人遇到过这个问题吗?

编辑:如果我在用户名文本字段中写入一个值,然后将其删除,然后尝试输入密码,则该应用程序可以正常工作。仅当用户名文本字段在密码文本字段有值之前有一个值。

【问题讨论】:

您在使用 IQKeyboard pod 吗? 不,但是我使用 MaterialComponents 框架来创建 MDCTextFields。 我的解决方案是 passwordField.autocorrectionType = .no mb 它也会帮助你 你能解决它@Shabani 吗?我也有同样的问题 @Shabani,将 MaterialComponents pod 更新到最新版本 (119) 对我有用 【参考方案1】:

在解决问题多次失败,并等待数周直到 Apple 回答我的问题后,问题终于得到解决。它实际上只是将“MaterialComponents”吊舱更新到版本“119.1.0”解决了这个问题。由于 Pod 出现问题,我们花了一些时间进行更新,但我们最终让它正常工作。感谢大家的帮助!

【讨论】:

谢谢。这一直让我发疯,我认为这是我做错的事情。【参考方案2】:

试试这个并重启你的系统

选择了“模拟器 -> 编辑 -> 自动同步粘贴板”canel。 “硬件 -> 重启”

设备 -> 重启

【讨论】:

我试过了,但没用。问题也出在物理设备上。如果我在用户名文本字段中写入一个值,然后将其删除,然后尝试输入密码,则该应用程序可以正常工作。仅当用户名文本字段在密码文本字段具有值之前具有值。

以上是关于iOS 14 更新后应用程序在文本字段上冻结的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用程序在 swift 中关闭视图后冻结

iOS 应用程序在使用 Realm 和 Crashlytics 通过 testflight 启动时冻结

当用户在系统设置 -> 显示和亮度上启用“粗体文本”时,iOS 应用程序在启动画面处冻结

IOs 应用程序仅在更新时冻结在初始屏幕

从 xcode 10.1 安装到 iOS 12+ 时,应用程序在启动屏幕上冻结

prepareForSegue 更新到 iOS9 后冻结