我想以编程方式触发Safari Extension toolbarItem上的“click”事件,以便在网页上发生某些事情后出现我的自定义弹出窗口.我正在使用新的
Xcode扩展IDE,并使用界面构建器构建了我的popover. StackOverflow上的所有答案目前都处理Safari扩展构建器中内置的扩展,而不是Xcode接口中的扩展.例如,我尝试过注入Safari JS解决方案,例如:
safari.extension.toolbaritems[0].showPopover();
但没有任何反应,我不认为它在Xcode中构建扩展时应该可行.我不关心弹出窗口是在注入的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)} }
打开Safari扩展的Info.plist并找到SFSafariToolbarItem键,然后查找Action子键并确保将其设置为Popover.
此外,请确保您的SFSafariExtensionViewController子类指定所需的preferredContentSize.
import SafariServices class SafariExtensionViewController: SFSafariExtensionViewController { static let shared = SafariExtensionViewController() override func viewDidLoad() { super.viewDidLoad() preferredContentSize = NSSize(width: 330,height: 119) } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。