強火で進め

このブログではプログラム関連の記事を中心に書いてます。

MonoでMac環境向けにcommand+Qでアプリを終了させる方法

MonoはデフォルトではMacのアプリで標準で対応しているcommand+Qでアプリを終了するという動作が実装されていません。以下のように自前でキーイベントをチェックしてアプリを終了する処理を追加する事で対応可能です。

	class MainClass
	{
		public static void Main (string[] args)
		{
			Application.Init ();
			MainWindow win = new MainWindow ();

			win.KeyPressEvent += HandleWinKeyPressEvent;
			win.Show ();
			Application.Run ();
		}
		
		static void HandleWinKeyPressEvent (object o, KeyPressEventArgs args)
		{
			if ((args.Event.State & Gdk.ModifierType.MetaMask) == Gdk.ModifierType.MetaMask && 
				    args.Event.Key == Gdk.Key.q) {
				Application.Quit();
			}
		}
	}