SwiftUI iOS 14 beta TextField 100% CPU

Posted

技术标签:

【中文标题】SwiftUI iOS 14 beta TextField 100% CPU【英文标题】: 【发布时间】:2020-09-10 14:15:28 【问题描述】:

如果我尝试在任何地方使用简单的 TextField,请使用 ios 14 和 Xcode 12.0 beta 6

import SwiftUI
struct ContentView: View 
  @State private var name: String = "Tim"
  var body: some View 
    VStack 
      TextField("Enter your name", text: $name)
      Text("Hello, \(name)!")
    
  

键盘打开,但 CPU 进入 99%/100% 并且应用程序被冻结。

这是一个已知问题吗?我该如何解决?

【问题讨论】:

我会直接提交给 Apple。 【参考方案1】:

此错误自 14.0 测试版以来就存在,目前尚未修复:/ 我尝试搜索解决方法或解决方案,但目前似乎没有。

一旦用户激活输入字段,CPU 就会达到 95%-100% 并一直保持在那里,直到您真正退出应用程序。

【讨论】:

【参考方案2】:

我找到了一些原因,如果你使用了一些 .onAppear 监听器,当设备键盘打开时,如果你使用 .onAppear 设置或更改任何 @EnvironmentObject 变量,应用程序会很疯狂 strong> 应用程序中任何位置的侦听器。但这并不适用于所有.onAppear......这真的很奇怪。当我注意到时,我逐个搜索。

【讨论】:

以上是关于SwiftUI iOS 14 beta TextField 100% CPU的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI Beta 3 黑屏

如何防止 TextField 在 SwiftUI 列表中消失?

iOS 14.2 Beta - AVPlayer 无法播放 [关闭]

仅在 iOS 14、SwiftUI 时显示一些视图

SwiftUI:仅在 iOS 14+ 上使用“accessibilityIdentifier”

如何更改 SwiftUI 和 iOS 14 中的单元格背景颜色?