2016年10月4日火曜日

macOS Sierra非互換:「表示」メニューに「タブバーを表示」項目が自動的に追加される(非表示化対応)

<非互換項目>

  • アプリメニューに「表示」メニューが存在すると自動的に「タブバーを表示」項目が追加表示される。


<状況・対応方法>

  • Sierra用にビルドしただけで自動的に「タブバーを表示」項目が追加され、選択するとタブ表示される機能が実装されています。
  • ゲームアプリですので当然ながら複数ドキュメント画面を開く様な機能はありませんので、「タブバーを表示」項目は表示して欲しくない。
  • 画面インタフェース定義ファイル(xibファイル)とかInfo.plist設定に「タブバーを表示」自動追加を無効化できるプロパティが無いか調べましたが、それらしい設定項目は発見できず。(xibファイルに設定あり:「追記」参照)
  • いろいろと調査した結果、下記のコード対応で「タブバーを表示」項目の自動追加を無効化する事が出来ました。(アプリ起動後の初期処理内にコード記述)


    // メニュー:タブバー非表示
    if ([NSWindow respondsToSelector:@selector(allowsAutomaticWindowTabbing)]) {
        NSWindow.allowsAutomaticWindowTabbing = NO;
    }


<追記>

  • 上記タブバー非表示のコード内容からNSWindowクラスのプロパティっぽかったので、xibエディタでWindowプロパティを再度確認すると「Tabbing Mode」があり、初期値は「Automatic」になっています。
  • 多分、この設定を変えればコード記述ではなく設定で変更可能と思われますが、Sierra以前のmacOSへの対応のため今回はコード記述にて対応しました。
xibファイル:Window設定

ではまた〜

0 件のコメント:

コメントを投稿