「Xamarin.Mac/キーコードを取得する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
2行目: 2行目:
  
 
==実装1==
 
==実装1==
KeyDownメソッドをオーバーライドするだけである。
+
KeyDownメソッドをオーバーライドするだけである。同時押しなど細かいところは調査中。
 
<source lang="csharp">
 
<source lang="csharp">
 
     public partial class MainWindowController : MonoMac.AppKit.NSWindowController
 
     public partial class MainWindowController : MonoMac.AppKit.NSWindowController

2015年1月30日 (金) 16:18時点における版

ウインドウ上でキーコードが取得できると、スペースキーに再生・停止などを割り当てたり、ファンクションキーなどにショートカットを割り当ててまるでCOBOLで作った業務システムかのようなアプリに出来たりと、何かと捗ると思う。

実装1

KeyDownメソッドをオーバーライドするだけである。同時押しなど細かいところは調査中。

    public partial class MainWindowController : MonoMac.AppKit.NSWindowController
    {
        // 〜〜中略〜〜

        public override void KeyDown(NSEvent theEvent)
        {
            base.KeyDown(theEvent);
            Console.WriteLine(theEvent.KeyCode);
        }
    }

NSWindowControllerだけでなくNSTextFieldなどのパーツ単位でもこの手法は使える。その場合は若干面倒だが各クラスを継承してKeyDownメソッドをオーバーライドすると良いようだ。

    public class MyTextField : MonoMac.AppKit.NSTextField
    {
        // 〜〜中略〜〜

        public override void KeyDown(NSEvent theEvent)
        {
            base.KeyDown(theEvent);
            Console.WriteLine(theEvent.KeyCode);
        }
    }

関連項目

参考文献