将数据从简单的 NSView 传递到 SwiftUI View:即 event.keyCode 案例
Posted
技术标签:
【中文标题】将数据从简单的 NSView 传递到 SwiftUI View:即 event.keyCode 案例【英文标题】:Passing data from simple NSView to SwiftUI View: Ie event.keyCode case 【发布时间】:2020-08-09 14:43:39 【问题描述】:当我尝试使用 OSX 10.15.6 和 XCode 版本 11.6 的解决方案(请查看 Passing data from simple NSView to SwiftUI View)时,我从系统收到以下错误消息,知道吗?致命错误:找不到键盘输入类型的 ObservableObject。作为此视图的祖先,KeyboardInput 的 View.environmentObject(:) 可能会丢失。:文件 SwiftUI,第 0 行 2020-08-07 11:05:36.189871+0200 pickit[8642:182114] 致命错误:没有 ObservableObject 类型找到键盘输入。作为此视图的祖先,KeyboardInput 的 View.environmentObject(:) 可能会丢失。:文件 SwiftUI,第 0 行
感谢您的帮助!
【问题讨论】:
【参考方案1】:这个
struct ContentView: View
@EnvironmentObject var input: KeyboardInput
...
要求提供环境对象来代替视图创建(在这种情况下为SceneDelegate
),例如
ContentView().environmentObject(KeyboardInput())
(如果使用,提供的预览相同)
【讨论】:
我正在使用 SwiftUI。在那种情况下,我找不到任何 SceneDelegate。所以我不明白该怎么做。我很菜鸟,请你能更精确一点,也许有一个sn-p?感谢您的帮助! SceneDelegate 用于带有 UIKit Life-Cycle 的 SwiftUI(所有支持 SwiftUI 1.0 的项目)。如果您从 Xcode 12 和 SwiftUI Life-Cycle 开始,那么您应该找到带有 WindowGroup 的 swift 文件有 ContentView() 并在那里添加 environmentObject...不要害怕好奇 - 搜索 )) 糟糕,抱歉,我没有表明我正在尝试为 MacOS 应用程序编写代码。 没关系 - SwiftUI 几乎完全跨平台。以上是关于将数据从简单的 NSView 传递到 SwiftUI View:即 event.keyCode 案例的主要内容,如果未能解决你的问题,请参考以下文章
从简单的 python 列表创建图像和标签的 tensorflow 数据集
Scala Spark - 从简单的数据框创建嵌套的 json 输出