我有一个Safari浏览器的扩展,其中含有禁用模式。我想在用户进入禁用模式时自动地通过编程更改工具栏图标。
是否有可以实现这一点的API?如果有,它是什么?
我有一个Safari浏览器的扩展,其中含有禁用模式。我想在用户进入禁用模式时自动地通过编程更改工具栏图标。
是否有可以实现这一点的API?如果有,它是什么?
你的扩展程序中的任何工具栏项都可以作为一个数组进行引用。
safari.extension.toolbarItems
每个工具栏项都有一个图像属性,您可以更改它。这将立即导致工具栏图标发生变化。// Change the toolbar icon.
var changeToolbarIcon = function(newIconName) {
var iconUri = safari.extension.baseURI + 'icons/' + newIconName;
safari.extension.toolbarItems[0].image = iconUri;
};
extension SFSafariPage {
func getContainingWindow(completionHandler: @escaping (SFSafariWindow?) -> Void) {
self.getContainingTab { $0.getContainingWindow { completionHandler($0) } }
}
func getToolbarItem(completionHandler: @escaping (SFSafariToolbarItem?) -> Void) {
self.getContainingWindow {
($0 == nil) ? completionHandler(nil) : $0.unsafelyUnwrapped.getToolbarItem { completionHandler($0) }
}
}
}
let tab: SFSafariTab = ...
tab.getToolbarItem { item in
item?.setImage(NSImage(...))
}