当用户单击 safari 中的工具栏项时,我想打开一个应用程序/扩展程序窗口。这不是关于扩展Popover
功能的问题。主要原因是关闭/隐藏停用和用户操作的窗口(这两个条件都需要工作)。
Safari 应用程序扩展(意味着 Apple 为 safari 创建扩展的新首选/强制方式)可以在单击工具栏项时打开弹出窗口或调用命令。但它不能以编程方式隐藏(https://forums.developer.apple.com/thread/105817)。根据 bweinstein 的回答,苹果开发人员正在进行中。
我的用例是关于包含加载网页的 WKWebView 的窗口。当用户单击其中的任何内容时,我想在 Safari 的新选项卡中打开一个页面(这部分已经在 Popover 模式下对我有用)并立即关闭窗口(这对我还不起作用)
所以我的想法是避免集成 Popover 功能。我想在override func toolbarItemClicked(in window: SFSafariWindow) {}
调用 Command ( ) 时显示 Window 。
我知道这在某种程度上是可行的,例如,agilebits 的 1Password 扩展正是这样做的:当您单击工具栏项时,显示的窗口没有关闭/最小化按钮,没有菜单等。它完全按照我的需要工作,但我没有知道如何实现这一目标。
我不知道是将视图定义为 Safari 扩展的一部分还是包含应用程序的 Storyboard 的一部分,以及如何以编程方式访问它并在用户单击工具栏项时将其显示在屏幕上。
由于我是 macOS 开发的新手,因此我并没有真正可以分享的代码。我 POV 的重要部分:-Info.plistNSExtension->SFSafariToolbarItem->Action
设置为Command
如上所述,我需要实现的功能是在用户单击工具栏项时以编程方式打开和关闭窗口。
提前致谢