xcode - WKWebView 不显示在 Playground 上

标签 xcode macos swiftui

当我在 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/

相关文章:

ios - 合并两个 NSFetchedResultsController

python - 用于引用的 LLDB 数据格式化程序

macos - 可以让 Terminal.app 尊重 ANSI 转义码吗?

ios - 更改字体后导航栏标题不会保持为粗体

ios - 升级到 xcode 7.3 后出现 CorePlot 错误

Python:在 OS X 中激活窗口

asp.net-mvc - 使用OSX开发ASP.NET MVC项目的Web设计人员的解决方案?

SwiftUI,如何翻译带有计时器样式的文本?

SwiftUI drawingGroup() 方法在应用于使用 ForEach 构建的 View 时似乎存在错误

xcode - 如何在 XCode 4.3 上制作 IPA?