「Xamarin.Mac/キーコードを取得する」の版間の差分
ナビゲーションに移動
検索に移動
1行目: | 1行目: | ||
− | ウインドウ上でキーコードが取得できると、[[スペースキー]]に再生・停止などを割り当てたり、[[ファンクションキー]]などに[[ショートカット]] | + | ウインドウ上でキーコードが取得できると、[[スペースキー]]に再生・停止などを割り当てたり、[[ファンクションキー]]などに[[ショートカット]]を割り当ててまるで[[COBOL]]で作った業務システムかのようなアプリに出来たりと、何かと捗ると思う。 |
==実装1== | ==実装1== |
2015年1月30日 (金) 16:17時点における版
ウインドウ上でキーコードが取得できると、スペースキーに再生・停止などを割り当てたり、ファンクションキーなどにショートカットを割り当ててまるで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);
}
}