Swift 如何打开工具栏上的应用程序窗口在safari应用程序扩展中单击?

Swift 如何打开工具栏上的应用程序窗口在safari应用程序扩展中单击?,swift,xcode,macos,safari-app-extension,Swift,Xcode,Macos,Safari App Extension,我想在用户单击safari中的工具栏项目时打开一个应用程序/扩展窗口。这不是关于扩展的Popover特性的问题。主要原因是在停用和用户操作时关闭/隐藏窗口(这两种条件都需要工作) Safari应用程序扩展(意味着苹果为Safari创建扩展的新首选/强制方式)可以在单击工具栏项时打开弹出窗口或调用命令。但它不能通过编程方式隐藏()。根据爱因斯坦的回答,这是苹果开发人员正在进行的工作 我的用例是关于包含加载网页的WKWebView的窗口。当用户单击其中的任何内容时,我想在Safari的新选项卡中打开

我想在用户单击safari中的工具栏项目时打开一个应用程序/扩展窗口。这不是关于扩展的
Popover
特性的问题。主要原因是在停用和用户操作时关闭/隐藏窗口(这两种条件都需要工作)

Safari应用程序扩展(意味着苹果为Safari创建扩展的新首选/强制方式)可以在单击工具栏项时打开弹出窗口或调用命令。但它不能通过编程方式隐藏()。根据爱因斯坦的回答,这是苹果开发人员正在进行的工作

我的用例是关于包含加载网页的WKWebView的窗口。当用户单击其中的任何内容时,我想在Safari的新选项卡中打开一个页面(该部分已在Popover模式下对我有效),并立即关闭窗口(这对我还不起作用)

所以我在这里的想法是避免集成Popover功能。我希望在调用命令(
override func toolbarItemClicked(在Window:SFSafariWindow中){}
)时显示窗口

我知道这在某种程度上是可行的,例如agilebits的1密码扩展正是这样做的:当您单击工具栏项目时,显示的窗口没有关闭/最小化按钮,没有菜单等。它完全按照我的需要工作,但我不知道如何实现这一点

我不知道是将视图定义为Safari扩展的一部分还是包含应用程序的情节提要的一部分,以及如何通过编程访问它,并在用户单击工具栏项目时在屏幕上显示它。

因为我是macos开发新手,所以我没有真正的代码可以共享。我的观点中的重要部分: -信息.plist的
NSExtension->SFSafariToolbarItem->Action
设置为
命令

如上所述,我需要实现的功能是在用户单击工具栏项时以编程方式打开和关闭窗口


提前感谢

您不能调用SFSafarWindow.openTab(“httxxx://mysite.com,true,…)在工具栏中单击


您还可以调用SFSafariApplication.openWindow API并关闭sfsafariawindow(通过调用windowObject.close())-

我认为1Password正在使用自定义URL方案或分布式通知(如果应用程序已经运行)启动其桌面应用程序。还可以查看但不确定沙箱中是否有此功能。