2

ポップオーバーが関連付けられたメインツールバーのボタンとコンテキストメニュー項目で構成されるSafari拡張機能を作成しようとしています。基本的な感触は、1Password拡張機能の感触をモデルにしています。

ポップオーバーの仕事の1つは、ユーザーがログインできるようにすることです。コンテキストメニュー項目のアクションも条件付きで変更します。ログインしていないユーザーがメニュー項目をクリックした場合は、ポップオーバーでログインできますが、開発者ガイドでこれを行う方法が見つかりません。

ポップオーバーを「表示」するにはどうすればよいですか?

4

1 に答える 1

6

ツールバー項目が1つとポップオーバーが1つしかない場合(さらに追加する予定がない場合)、それは1行だけです。Extension Builderのツールバー項目にポップオーバーをすでに割り当てていると仮定すると、次を使用できます。

safari.extension.toolbarItems[0].showPopover();

ただし、複数のポップオーバーと(場合によっては)複数のツールバー項目がある場合は、アクティブなブラウザウィンドウの指定されたツールバー項目の下で、識別子で指定されたポップオーバーを開くための一般化された関数を次に示します。

function showPopover(popoverId, toolbarItemId) {
    var toolbarItem = safari.extension.toolbarItems.filter(function (tbi) {
        return tbi.identifier == toolbarItemId && tbi.browserWindow == safari.application.activeBrowserWindow;
    })[0];
    var popover = safari.extension.popovers.filter(function (po) {
        return po.identifier == popoverId;
    })[0];
    toolbarItem.popover = popover;
    toolbarItem.showPopover();  
}
于 2012-11-25T21:47:18.830 に答える