Какао Swift: WKWebView не показывает, когда это добавить в качестве подпредставления - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь добавить 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?

Я буду очень признателен за вашу помощь.

1 Ответ

0 голосов
/ 12 апреля 2019

Я нашел корень этой проблемы.Поскольку приложение MacOS (Какао) необходимо включить входящие и исходящие соединения:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...