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

提供: MonoBook
< MonoMac
2013年11月5日 (火) 02:29時点におけるimported>Administratorによる版 (ページの作成:「Mac OS Xの世界ではウインドウを閉じてもウインドウが非表示になるだけでアプリは終了しないのが常識である。 Windows...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Mac OS Xの世界ではウインドウを閉じてもウインドウが非表示になるだけでアプリは終了しないのが常識である。

Windowsから来た人には理解しがたい点である。 ならばウインドウを閉じたらアプリを終了するようにしてみよう。

方法

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

<source lang="csharp"> 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;
       }
   }

}

関連項目

参考文献