「Xamarin.Mac/NSViewControllerでKeyDownイベントを取りたい」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「Xamarin.MacというかCocoaでKeyDownなどのイベントを処理したい場合は、一般的にはNSViewの派生クラスを作り、それをxibやstoryboardに...」)
 
(相違点なし)

2017年10月6日 (金) 05:25時点における最新版

Xamarin.MacというかCocoaでKeyDownなどのイベントを処理したい場合は、一般的にはNSViewの派生クラスを作り、それをxibやstoryboardに貼って、基本的にViewControllerでは何もしない。 これ、ちょっとしたサンプルプログラムなんかでは面倒くさすぎる。

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

例:NSViewControllerでKeyDownを処理する[編集 | ソースを編集]

    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; 
            });
        }
    }