モードが無効になっている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;
};
新しいSafariAppExtensions APIを使用すると、への参照がありSFSafariPage
、このページが固定されていない(固定されたタブのウィンドウはnil
)限り、コールバックのチェーンを介してそのページのタブのウィンドウのツールバー項目を取得できます。次に、これらの各ツールバー項目のアイコンを設定します。
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(...))
}