gpt4 book ai didi

swift - 如何以编程方式打开 Safari Extension ToolbarItem 弹出窗口

转载 作者:搜寻专家 更新时间:2023-10-30 21:58:18 29 4
gpt4 key购买 nike

我想以编程方式触发我的 Safari Extension toolbarItem 上的“点击”事件,以便在网页上发生某些事情后显示我的自定义弹出窗口。我正在使用新的 Xcode 扩展 IDE,并使用界面生成器构建了我的弹出窗口。 StackOverflow 上的所有答案目前都涉及在 Safari 扩展构建器中构建的扩展,而不是在 Xcode 界面中构建的扩展。例如,我尝试过注入(inject) Safari JS 解决方案,例如:

safari.extension.toolbarItems[0].showPopover();

但是没有任何反应,而且我认为当您在 Xcode 中构建扩展时它不应该起作用。我不关心弹出窗口是在注入(inject)的 javascript 中触发还是在我的 SafariExtensionHandler.Swift 文件中触发——我只需要一种无需用户单击工具栏项即可显示它的方法。

我使用扩展程序的 info.plist 将我的弹出窗口与我的工具栏项目相关联,我已链接到下面:

/image/VxyLs.png

该扩展与 native CocoaOS 应用程序捆绑在一起,并且使用 WWDC '15 上引入的新 Xcode 范例构建(链接如下)。我可以使用以下方法访问 SafariExtensionHandler.Swift 中的 Toolbaritem:

 func getToolbarItem(completionHandler: @escaping (SFSafariToolbarItem?) -> Void) {
SFSafariApplication.getActiveWindow {$0?.getToolbarItem (completionHandler: completionHandler)}
}

但是toolbarItem对象好像没有显示popover的方法。

https://developer.apple.com/videos/play/wwdc2016/214/

最佳答案

SFSafariApplication.getActiveWindow { (window) in
window?.getToolbarItem(completionHandler: { (item) in
item?.showPopover()
})
}

关于swift - 如何以编程方式打开 Safari Extension ToolbarItem 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554363/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com