Swiftui MacOS项目中未声明的类型“UIViewRepresentable”

Swiftui MacOS项目中未声明的类型“UIViewRepresentable”,swiftui,Swiftui,我创建了macOS项目,并试图使UIViewRepresentable,但出现了这个错误 导入快捷键 结构WebView:UIViewRepresentable{//错误:使用了未声明的类型“UIViewRepresentable” } 我可以用它做什么,或者如何使我自己的UIViewRepresentable让macOS在我的项目中使用WKWebView 结构WebView:UIViewRepresentable{ func makeUIViewcontext:Context->WKWebVi

我创建了macOS项目,并试图使UIViewRepresentable,但出现了这个错误

导入快捷键 结构WebView:UIViewRepresentable{//错误:使用了未声明的类型“UIViewRepresentable” } 我可以用它做什么,或者如何使我自己的UIViewRepresentable让macOS在我的项目中使用WKWebView

结构WebView:UIViewRepresentable{ func makeUIViewcontext:Context->WKWebView{ WKWebView } func updateUIView_uiView:WKWebView,context:context{ } } 用户界面。。。总是指UIKit

对于macOS,您必须使用

UI。。。总是指UIKit


对于macOS,您必须使用

,您可以实现以下代码。然后,Xcode将帮助您为相应的目标实现正确的协议:

#if os(macOS)
public typealias ViewRepresentable = NSViewRepresentable
#elseif os(iOS)
public typealias ViewRepresentable = UIViewRepresentable
#endif
马科斯目标 iOS目标 此外,您可以在一个结构中同时使用两种实现,如:

struct WebView: ViewRepresentable {
    func makeNSView(context: Context) -> WKWebView { WKWebView() }
    func makeUIView(context: Context) -> WKWebView { WKWebView() }
    func updateNSView(_ nsView: WKWebView, context: Context) { }
    func updateUIView(_ nsView: WKWebView, context: Context) { }
}
自动的 如果您希望有这样一个在两种平台上都能工作的简单实现,请查看:

import WebKit
struct WebView: ViewRepresentableHelper {
    var configuration = { (view: WKWebView) in }
}
用法
您可以实现以下代码。然后,Xcode将帮助您为相应的目标实现正确的协议:

#if os(macOS)
public typealias ViewRepresentable = NSViewRepresentable
#elseif os(iOS)
public typealias ViewRepresentable = UIViewRepresentable
#endif
马科斯目标 iOS目标 此外,您可以在一个结构中同时使用两种实现,如:

struct WebView: ViewRepresentable {
    func makeNSView(context: Context) -> WKWebView { WKWebView() }
    func makeUIView(context: Context) -> WKWebView { WKWebView() }
    func updateNSView(_ nsView: WKWebView, context: Context) { }
    func updateUIView(_ nsView: WKWebView, context: Context) { }
}
自动的 如果您希望有这样一个在两种平台上都能工作的简单实现,请查看:

import WebKit
struct WebView: ViewRepresentableHelper {
    var configuration = { (view: WKWebView) in }
}
用法
由于从Catalyst移植我的应用程序时出现其他错误,我无法检查NSViewRepresentable如何与WKWebView一起工作,但现在当我启动它时,我看到的是一个黑屏,而不是WKWebView的内容。我问了一个问题,由于从Catalyst移植我的应用程序时出现其他错误,我无法检查NSViewRepresentable如何与WKWebView一起工作,但现在当我启动它时,我看到的是一个黑屏,而不是WKWebView的内容。我问了一个问题