メインメニューを開く

MonoMac/ウインドウを閉じた際にアプリを終了させる

< MonoMac

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;
        }
    }
}

関連項目編集

参考文献編集