• Es gibt nach dem Softwareupdate eine Reihe von Änderungen und Neuerungen in unserem Forum. Genaueres dazu findet Ihr in dieser Ankündigung. Hinweise, Kritik, Anregungen, Lob und Tadel bitte hier diskutieren.

[Swift] navigationAction.request in neuem Tab (WKWebView, macOS)

julian_mac

Grahams Jubiläumsapfel
Mitglied seit
30.05.14
Beiträge
107
Hallo zusammen,

habe bereits in mehreren Foren um Hilfe gebeten, aber niemand konnte mir helfen.
Ich arbeite an einem kleinen Browser, bzw. programmiere diesen in Swift um.

Durch die untenstehende Funktion erkenne ich _blank Links. In diesem Fall soll durch den NSDocumentController ein neuer Tab erstellt werden und das neue navigationAction.request soll in dem webView des neuen Tabs geöffnet werden. Der neue Tab wird erzeugt, aber das navigationAction.request wird im bisherigen Tab geöffnet und nicht im neuen Tab. Wie kann ich auf den webView eines neu generierten Tabs zugreifen?

Code:
    func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView?
    {
        if navigationAction.targetFrame == nil {
            // New Tab
            guard ((try? NSDocumentController.shared.openUntitledDocumentAndDisplay(true)) as? Document) != nil else {
                // Document konnte nicht erstellt werden
                return nil
            }
            // Start Request
            self.webView?.load(navigationAction.request)
        }
        return nil
    }
Vielen Dank für Eure Hilfe! :)