2

我正在使用 Xcode 10.1 版在 Swift 4.2 中开发 mac os 应用程序扩展。目前,当用户单击工具栏按钮时,我正在显示一个弹出窗口。

在弹出窗口中,我加载了具有搜索框的网页。目前,当用户使用搜索框搜索时,结果显示在同一个 web 视图中(在弹出窗口本身中打开)

我想在 Safari 浏览器中打开该搜索链接/结果。

参考代码

import SafariServices
import WebKit
import os.log

class SafariExtensionViewController:  SFSafariExtensionViewController, WKNavigationDelegate, WKUIDelegate{

    static let shared = SafariExtensionViewController()

    var webView : WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.preferredContentSize = NSMakeSize(380, 350) //370, 340
        webView = WKWebView(frame: self.view.frame)
        self.view.addSubview(webView)

        webView.navigationDelegate = self
        webView.translatesAutoresizingMaskIntoConstraints = false;

        let height = NSLayoutConstraint(item: webView, attribute: .height, relatedBy: .equal, toItem: self.view, attribute: .height, multiplier: 1, constant: 0)
        let width = NSLayoutConstraint(item: webView, attribute: .width, relatedBy: .equal, toItem: self.view, attribute: .width, multiplier: 1, constant: 0)
        self.view.addConstraints([height,width])

        let startingUrl = URL(string: mySiteURL);
        webView.load(URLRequest(url: startingUrl!));
    }
}

如何在 Safari 浏览器选项卡而不是弹出窗口中打开链接?

此外,xcode 10.1 和 Swift 4.2 是否支持 UIKit?

UIKit 是否适用于 mac OS 应用程序?

4

0 回答 0