MonoMac/フルスクリーン表示に対応する

提供: MonoBook
< MonoMac
2014年10月23日 (木) 14:03時点における114.49.58.237 (トーク)による版
ナビゲーションに移動 検索に移動

Mac OS X Lionから利用できるようになったフルスクリーン表示をMonoMacから利用する方法を示す。

OpenGLなどで使われる「フルスクリーンモード」とは別物なので注意すること。 OpenGLのフルスクリーンモードではGPUへの低レベルアクセスができる代わりにCocoaがほぼ機能しなくなるが、フルスクリーン表示はあくまでウインドウを全画面表示しているだけCocoaも問題なく使える。

方法1 xibファイルで設定しておく

  1. MainWindow.xibファイルを開く。
  2. Attributes inspectorタブを開く。
  3. Full Screenセレクトボックスの値を「Unsupported」から「Primary Window」に変更する。
  4. おしまい

方法2 プログラムから制御する

  1. MonoMac.AppKit.NSWindowクラスのCollectionBehaviorプロパティにフラグを立てるとリアルタイムで反映される。
    • NSWindowCollectionBehavior列挙体には色々なフラグがあるので暇な人は他にも色々試してみよう。
using System;
using System.Collections.Generic;
using System.Linq;
using MonoMac.Foundation;
using MonoMac.AppKit;

namespace TestFullScreenView
{
    public partial class MainWindowController : MonoMac.AppKit.NSWindowController
    {
        // 〜〜〜中略〜〜〜

        // 何かキーを押したらフルスクリーン表示ボタン(右上に出るやつ)をオンオフするサンプル
        public override void KeyUp(NSEvent theEvent)
        {
            bool isFullScreenIconEnabled = (this.Window.CollectionBehavior & NSWindowCollectionBehavior.FullScreenPrimary)
                                == NSWindowCollectionBehavior.FullScreenPrimary;
            if (isFullScreenIconEnabled)
            {
                // フルスクリーン表示を無効化する
                this.Window.CollectionBehavior &= ~NSWindowCollectionBehavior.FullScreenPrimary;
            }
            else
            {
                // フルスクリーン表示を友好化する
                this.Window.CollectionBehavior |= NSWindowCollectionBehavior.FullScreenPrimary;
            }

            base.KeyUp(theEvent);
        }
    }
}

関連項目

参考文献