swift – 如何以编程方式打开Safari Extension ToolbarItem popover

swift – 如何以编程方式打开Safari Extension ToolbarItem popover,第1张

概述我想以编程方式触发Safari Extension toolbarItem上的“click”事件,以便在网页上发生某些事情后出现我的自定义d出窗口.我正在使用新的 Xcode扩展IDE,并使用界面构建器构建了我的popover. StackOverflow上的所有答案目前都处理Safari扩展构建器中内置的扩展,而不是Xcode接口中的扩展.例如,我尝试过注入Safari JS解决方案,例如: s 我想以编程方式触发Safari Extension toolbarItem上的“click”事件,以便在网页上发生某些事情后出现我的自定义d出窗口.我正在使用新的 Xcode扩展IDE,并使用界面构建器构建了我的popover. StackOverflow上的所有答案目前都处理Safari扩展构建器中内置的扩展,而不是Xcode接口中的扩展.例如,我尝试过注入Safari Js解决方案,例如:
safari.extension.toolbaritems[0].showPopover();@H_403_2@  

但没有任何反应,我不认为它在Xcode中构建扩展时应该可行.我不关心d出窗口是在注入的JavaScript中还是在我的SafarIExtensionHandler.Swift文件中触发 – 我只需要一种方法来显示它而无需用户单击工具栏项.

我使用扩展名的info.pList将我的popover与我的工具栏项相关联,我已将其链接到下面:

https://i.stack.imgur.com/VxyLs.png

该扩展与本机CocoaOS应用程序捆绑在一起,并使用在WWDC ’15(下面的链接)中引入的新Xcode范例构建.我可以使用以下方法访问SafarIExtensionHandler.Swift中的Toolbaritem:

func getToolbarItem(completionHandler: @escaPing (SFSafariToolbarItem?) -> VoID) {    SFSafariApplication.getActiveWindow {$0?.getToolbarItem (completionHandler: completionHandler)}}@H_403_2@  

但toolbarItem对象似乎没有显示d出窗口的方法.

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

打开Safari扩展的Info.pList并找到SFSafariToolbarItem键,然后查找Action子键并确保将其设置为Popover.

此外,请确保您的SFSafarIExtensionVIEwController子类指定所需的preferredContentSize.

import SafariServicesclass SafarIExtensionVIEwController: SFSafarIExtensionVIEwController {    static let shared = SafarIExtensionVIEwController()    overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()        preferredContentSize = NSSize(wIDth: 330,height: 119)    }}@H_403_2@          总结       

以上是内存溢出为你收集整理的swift – 如何以编程方式打开Safari Extension ToolbarItem popover全部内容,希望文章能够帮你解决swift – 如何以编程方式打开Safari Extension ToolbarItem popover所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1089334.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存