Я создал приложение веб-браузера какао. Я тестировал свой браузер, и мне не удавалось открывать ссылки с target_blank
. Итак, я нашел вопрос о переполнении стека. Я использовал этот ответ и проверил его, и я смог открыть ссылки. Но ссылки будут открываться на той же веб-странице. Я хочу, чтобы он открылся в новой вкладке. Итак, я нашел эту веб-страницу , которая рассказывает мне, как добавить вкладки nswindow в мое приложение. Я добавил вкладки в свой браузер какао.
Вот коды, которые я добавил
Я использовал приведенный ниже код для создания вкладок в своем оконном контроллере:
@IBAction override func newWindowForTab(_ sender: Any?) {
let newWindowController = self.storyboard!.instantiateInitialController() as! WindowController
let newWindow = newWindowController.window!
newWindow.windowController = self
self.window!.addTabbedWindow(newWindow, ordered: .above)
}
Это код в моем ViewController, который открывает ссылки с целевым пустым:
//It opens in the same web page
func webView(webView: WKWebView!, createWebViewWithConfiguration configuration: WKWebViewConfiguration!, forNavigationAction navigationAction: WKNavigationAction!, windowFeatures: WKWindowFeatures!) -> WKWebView! {
if navigationAction.targetFrame == nil {
webView.loadRequest(navigationAction.request)
}
return nil
}
Я подумал о том, чтобы изменить приведенный выше код на этот:
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
newWindowForTab(webView.load(navigationAction.request))
return nil
}
Но затем я получаю эту ошибку:
![Screenshot of Error](https://i.stack.imgur.com/nEft8.png)
Невозможно преобразовать возвращаемое выражение типа «Void» в возвращаемый тип «WKWebView?»
Не могли бы вы помочь меня открывать ссылки на новых вкладках вместо той же страницы?