メインメニューを開く

差分

Xamarin.Mac/NSViewControllerでKeyDownイベントを取りたい

1,025 バイト追加, 2017年10月6日 (金) 05:25
ページの作成:「Xamarin.MacというかCocoaでKeyDownなどのイベントを処理したい場合は、一般的にはNSViewの派生クラスを作り、それをxibやstoryboardに...」
Xamarin.MacというかCocoaでKeyDownなどのイベントを処理したい場合は、一般的にはNSViewの派生クラスを作り、それをxibやstoryboardに貼って、基本的にViewControllerでは何もしない。
これ、ちょっとしたサンプルプログラムなんかでは面倒くさすぎる。

そんなときはNSEvent.AddLocalMonitorForEventsMatchingMaskを使う。

== 例:NSViewControllerでKeyDownを処理する ==
<source lang="csharp">
public partial class ViewController : NSViewController
{
public ViewController(IntPtr handle) : base(handle)
{
}

public override void ViewDidLoad()
{
base.ViewDidLoad();

// Do any additional setup after loading the view.

NSEvent.AddLocalMonitorForEventsMatchingMask(NSEventMask.KeyDown, (theEvent) => {
Console.WriteLine(theEvent.KeyCode);
return theEvent;
});
}
}
</source>


[[category: Xamarin.Mac]]
匿名利用者