「MonoMac/ウインドウを閉じた際にアプリを終了させる」の版間の差分
< MonoMac
ナビゲーションに移動
検索に移動
imported>Administrator |
|||
(2人の利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
− | [[Mac OS X]] | + | [[Mac OS X]]の世界ではウインドウを閉じてもウインドウが非表示になるだけで、アプリ自体は終了しないのが常識である。 |
− | |||
[[Windows]]から来た人には理解しがたい点である。 | [[Windows]]から来た人には理解しがたい点である。 | ||
ならばウインドウを閉じたらアプリを終了するようにしてみよう。 | ならばウインドウを閉じたらアプリを終了するようにしてみよう。 | ||
== 方法 == | == 方法 == | ||
− | # 「AppDelegate. | + | # 「AppDelegate.csファイル」を開く。このファイルはMonoMacプロジェクト作成時に自動生成されているはずである。 |
# 「ApplicationShouldTerminateAfterLastWindowClosedメソッド」をオーバーライドする。 | # 「ApplicationShouldTerminateAfterLastWindowClosedメソッド」をオーバーライドする。 | ||
# [[戻り値]]を「true」にする。 | # [[戻り値]]を「true」にする。 | ||
40行目: | 39行目: | ||
} | } | ||
} | } | ||
+ | </source> | ||
== 関連項目 == | == 関連項目 == | ||
48行目: | 48行目: | ||
{{stub}} | {{stub}} | ||
+ | |||
+ | [[category:MonoMac]] |
2015年1月30日 (金) 01:42時点における最新版
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;
}
}
}