メインメニューを開く

差分

Xamarin.Macでモーダルウインドウを作成する

438 バイト除去, 2018年8月7日 (火) 01:57
編集の要約なし
</source>
なお、NSApplication.SharedApplication.StopModalWithCodeメソッドはウインドウのモーダル化が解除されるだけでウインドウ自体は閉じない。ボタンなどを押されたときにモーダルウインドウを閉じる場合にはthis.Window.Closeを呼んでやると良いようだ。<source lang="csharp"> ModalResult _result = ModalResult.Cancel;
public override void AwakeFromNib=== 表示してみる ===<syntaxhighlight lang="csharp"> // ダイアログ生成 var dialog = new MessageWindowController(); // LoadWindowでawakeNibなどの初期化処理が呼ばれる dialog.LoadWindow(); { // 不要かもしれないがウインドウを最前面にしておく base dialog.AwakeFromNibWindow.MakeKeyAndOrderFront(this); // ----------------------------------------------------モーダル表示 NSApplication.SharedApplication.RunModalForWindow(dialog.Window);
this.Window.WillClose += (object sender, EventArgs e) => {
Console.WriteLine("WillClose");
NSApplication.SharedApplication.StopModalWithCode((int)_result);
};
// cancelButtonはInterfaceBuilderで貼付けたNSButton cancelButton.Activated += (object sender, EventArgs e) => { Console.WriteLine("cancelButton"); _result = ModalResult.Cancel; this.Window.Close(); };  // cancelButtonはInterfaceBuilderで貼付けたNSButton okButton.Activated += (object sender, EventArgs e) => { Console.WriteLine("okButton"); _result = ModalResult.OK; this.Window.Close(); }; }</sourcesyntaxhighlight>
==関連項目==
匿名利用者