Cocoa Swift:WKWebView在将其添加为子视图时未显示

问题描述 投票:0回答:1

我正在尝试添加WKWebView作为子视图:

func loadWebView() {

    let userAgentStr = self.getUserAgent()
    if let url = URL(string: videoURL.stringValue){
        let request  = URLRequest.init(url: url)
        let config = WKWebViewConfiguration()
        self.webView = WKWebView(frame: self.view.frame, configuration: config)
        self.webView.wantsLayer = true
        self.webView.customUserAgent = userAgentStr
        self.webView.load(request)
        self.webView.layer?.backgroundColor = NSColor.green.cgColor
        self.view.addSubview(self.webView)
        self.view.needsDisplay = true

    }
}

但是没有在主要的NSView中显示。但是被添加为子视图:

po self.view.subviews
▿ 9 elements
  - 0 : <NSTextField: 0x10050e400>
  - 1 : <NSTextField: 0x10050f7f0>
  - 2 : <NSTextField: 0x10050e8e0>
  - 3 : <NSButton: 0x600003510000>
  - 4 : <NSButton: 0x6000035100b0>
  - 5 : <NSTextField: 0x10050ee00>
  - 6 : <NSButton: 0x600003510160>
  - 7 : <NSView: 0x6000033054a0>
  - 8 : <WKWebView: 0x600003e01400>

我试着看看我做错了什么并将它添加为NSView作为子视图:

func loadNSView() {
    let newView = NSView()
    newView.frame = self.view.frame
    newView.wantsLayer = true
    newView.layer?.backgroundColor = NSColor.white.cgColor
    self.view.addSubview(newView)
    self.view.needsDisplay = true
}

它工作得很好。

你们中的任何人都知道我可能做错了什么?或者我该怎么做才能加载WKWebView?

我真的很感谢你的帮助。

swift cocoa wkwebview nsview xcode10.2
1个回答
0
投票

我找到了这个问题的根源。由于是MacOS(Cocoa)应用程序,您需要启用传入和传出连接:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.