AIR アプリで Mac のメニューバーのみ表示する時は

AIR アプリでメニューバーを表示する場合、Mac OS X と、Windows や Unix(まあ、Unix の場合は Window Manager の役目だが)とで処理が異なる。

アプリケーション毎のメニューを、Mac OS X は画面上部のメニューバーに一元化しているが、Windows や Unix では Window 毎のウィンドウメニューバーに表示する。仕掛けがまったく違うわけだ。

ということで、Action Script では OS 毎の記述の違いをなるべく吸収しているが、メニューバーのセットについては、以下のように NativeApplication.supportsMenu が有効(Mac OS X)か、NativeWindow.supportsMenu(Windows や Unix)が有効かでメニューをセットする先がかわってくる。

        //================================================================
        // メニューバーセット
        //================================================================
        private function buildMenu():void {

            var root:NativeMenu = new NativeMenu();

            var item:NativeMenuItem = new NativeMenuItem("hogehoge");
            root.addItem(item);

            if (NativeApplication.supportsMenu) { // Mac OS X
                nativeApplication.menu = root;
            }
            else if (NativeWindow.supportsMenu) { // Windows
                nativeWindow.menu = root;
            }

        }

で、この場合、ウィンドウメニューバーを表示しないよう ADF ファイルでシステムクロームの設定を "none" にしていると、

Error: Illegal window settings. Window menus are only supported when systemChrome is set to "standard".

と怒られてしまう。

でも、Mac OS X の場合はメニューバーは必ず表示れているわけで、その内容だけは編集したい場合もあるだろう。
その時は、

        //================================================================
        // メニューバーセット
        //================================================================
        private function buildMenu():void {

            var root:NativeMenu = new NativeMenu();

            var item:NativeMenuItem = new NativeMenuItem("hogehoge");
            root.addItem(item);

            nativeApplication.menu = root; // Mac OS X

        }

これだけの記述で良い。

トラックバック(0)

このブログ記事を参照しているブログ一覧: AIR アプリで Mac のメニューバーのみ表示する時は

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/1361

コメントする

このブログ記事について

このページは、shinodaが2010年11月18日 19:11に書いたブログ記事です。

ひとつ前のブログ記事は「MPEG-1 NTSC - DVD セッティングでエンコードすればバッチリ」です。

次のブログ記事は「体重が半年前の状態に戻ってしまったよ・・・」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら