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

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
(Administrator がページ「MonoMac/キーコードを取得する」を「Xamarin.Mac/キーコードを取得する」に移動しました)
imported>Administrator
 
1行目: 1行目:
 
ウインドウ上でキーコードが取得できると、[[スペースキー]]に再生・停止などを割り当てたり、[[ファンクションキー]]などに[[ショートカット]]を割り当ててまるで[[COBOL]]で作った業務システムかのようなアプリに出来たりと、何かと捗ると思う。
 
ウインドウ上でキーコードが取得できると、[[スペースキー]]に再生・停止などを割り当てたり、[[ファンクションキー]]などに[[ショートカット]]を割り当ててまるで[[COBOL]]で作った業務システムかのようなアプリに出来たりと、何かと捗ると思う。
  
==実装1==
+
== 実装 ==
 
KeyDownメソッドをオーバーライドするだけである。同時押しなど細かいところは調査中。
 
KeyDownメソッドをオーバーライドするだけである。同時押しなど細かいところは調査中。
 
<source lang="csharp">
 
<source lang="csharp">
30行目: 30行目:
 
</source>
 
</source>
  
==関連項目==
+
== 関連項目 ==
 +
* [[キーコード/Mac OS X]]
  
==参考文献==
+
== 参考文献 ==
 
{{reflist}}
 
{{reflist}}
  
38行目: 39行目:
  
 
[[category:MonoMac]]
 
[[category:MonoMac]]
 +
[[category:Xamarin.Mac]]

2017年9月20日 (水) 06:14時点における最新版

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

実装[編集 | ソースを編集]

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

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]