5

モードが無効になっているSafariブラウザ拡張機能があります。私がやりたいのは、ユーザーが無効モードに入ったときにツールバーアイコンをプログラムで変更することです。

これを実現できるAPIはありますか?もしそうなら、それは何ですか?

4

2 に答える 2

10

拡張機能にあるツールバー項目はすべて、の配列として参照できます。

safari.extension.toolbarItems

各ツールバー項目には、変更可能な画像プロパティがあります。これにより、ツールバーアイコンがすぐに変更されます。

// Change the toolbar icon.
var changeToolbarIcon = function(newIconName) {
  var iconUri = safari.extension.baseURI + 'icons/' + newIconName;
  safari.extension.toolbarItems[0].image = iconUri;
};

Safariのドキュメント

于 2012-10-02T11:09:36.140 に答える
1

新しい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(...))
}
于 2019-12-07T21:54:18.417 に答える