将数据从简单的 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 输出

Jquery datatable 在从简单的 Web 服务调用 Web 方法时未在表中显示任何数据

从简单的 XML 文件中提取数据

如何从简单的 Python 服务器打印到 html 页面?

从简单的图像 ios 创建贝塞尔路径