我有一个 macOS 故事板应用程序,其中有一个 SwiftUI 视图,该视图使用NSHostingController. 我需要EnvironmentObject从我的 NSHostingController传递一个到这个 SwiftUI 视图。我无法做到这一点。我目前已经编写了这段代码,但它不起作用。这里可能是什么问题?
import Cocoa
import SwiftUI
class SearchText: ObservableObject {
@Published var text = ""
}
class HostingController: NSHostingController<SwiftUIView> {
@objc required dynamic init?(coder: NSCoder) {
super.init(coder: coder, rootView: SwiftUIView().environmentObject(SearchText()))
}
}
Run Code Online (Sandbox Code Playgroud)
问题是修饰符.environmentObject返回的类型与您在泛型中指定的类型不同,即SwiftUIView.
这是可能的方法
class HostingController: NSHostingController<AnyView> {
@objc required dynamic init?(coder: NSCoder) {
super.init(coder: coder, rootView:
AnyView(SwiftUIView().environmentObject(SearchText())))
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |