「MonoMac/ウインドウを閉じた際にアプリを終了させる」の版間の差分
imported>Administrator 編集の要約なし |
imported>Administrator 細 →方法 |
||
| 5行目: | 5行目: | ||
== 方法 == | == 方法 == | ||
# 「AppDelegate. | # 「AppDelegate.csファイル」を開く。このファイルはMonoMacプロジェクト作成時に自動生成されているはずである。 | ||
# 「ApplicationShouldTerminateAfterLastWindowClosedメソッド」をオーバーライドする。 | # 「ApplicationShouldTerminateAfterLastWindowClosedメソッド」をオーバーライドする。 | ||
# [[戻り値]]を「true」にする。 | # [[戻り値]]を「true」にする。 | ||
2013年11月5日 (火) 02:30時点における版
Mac OS Xの世界ではウインドウを閉じてもウインドウが非表示になるだけでアプリは終了しないのが常識である。
Windowsから来た人には理解しがたい点である。 ならばウインドウを閉じたらアプリを終了するようにしてみよう。
方法
- 「AppDelegate.csファイル」を開く。このファイルはMonoMacプロジェクト作成時に自動生成されているはずである。
- 「ApplicationShouldTerminateAfterLastWindowClosedメソッド」をオーバーライドする。
- 戻り値を「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;
}
}
}