「MonoMac/ウインドウを閉じた際にアプリを終了させる」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
48行目: 48行目:
  
 
{{stub}}
 
{{stub}}
 +
 +
[[category:MonoMac]]

2015年1月30日 (金) 01:42時点における最新版

Mac OS Xの世界ではウインドウを閉じてもウインドウが非表示になるだけで、アプリ自体は終了しないのが常識である。 Windowsから来た人には理解しがたい点である。 ならばウインドウを閉じたらアプリを終了するようにしてみよう。

方法[編集 | ソースを編集]

  1. 「AppDelegate.csファイル」を開く。このファイルはMonoMacプロジェクト作成時に自動生成されているはずである。
  2. 「ApplicationShouldTerminateAfterLastWindowClosedメソッド」をオーバーライドする。
  3. 戻り値を「true」にする。
using System;
using System.Drawing;
using MonoMac.Foundation;
using MonoMac.AppKit;
using MonoMac.ObjCRuntime;

namespace TestApp
{
    public partial class AppDelegate : NSApplicationDelegate
    {
        MainWindowController mainWindowController;

        public AppDelegate()
        {
        }

        public override void FinishedLaunching(NSObject notification)
        {
            mainWindowController = new MainWindowController();
            mainWindowController.Window.MakeKeyAndOrderFront(this);
        }

        // オーバーライドする
        // メソッド名が長いので「override」と打ち込んでインテリセンスから選択するのがタイポも発生しなくてよい。
        public override bool ApplicationShouldTerminateAfterLastWindowClosed(NSApplication sender)
        {
            // trueを返すとウインドウを閉じるとアプリが終了するようになる
            return true;
        }
    }
}

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]