当我在 Xcode 11.5 Playground 上运行下面的代码时,会显示 TextView ,但不会显示自定义 View WebView。我也没有收到任何错误。
import SwiftUI
import PlaygroundSupport
import WebKit
struct webView: View {
var body: some View {
VStack {
Text("Test")
WebView(request: URLRequest(url: URL(string: "http://www.google.com")!))
}
}
}
PlaygroundPage.current.setLiveView(webView())
struct WebView : NSViewRepresentable {
var request: URLRequest
func makeNSView(context: Context) -> WKWebView {
let preferences = WKPreferences()
preferences.javaScriptEnabled = true
let config = WKWebViewConfiguration()
config.preferences = preferences
let webView = WKWebView(frame: .zero, configuration: config)
webView.frame = NSRect(x: 0, y: 0, width: 400, height: 300)
DispatchQueue.main.async {
webView.load(self.request)
}
return webView
}
func updateNSView(_ nsView: WKWebView, context: Context) {
}
}
相同的代码在主代码中有效,但在 Playground 中无效。我不确定出了什么问题。
最佳答案
您需要明确指定框架(因为没有窗口)
PlaygroundPage.current.setLiveView(webView().frame(width: 400, height: 300))
关于xcode - WKWebView 不显示在 Playground 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63007820/