「Xamarin.Mac/キーコードを取得する」の版間の差分
imported>Administrator 細 Administrator がページ「MonoMac/キーコードを取得する」を「Xamarin.Mac/キーコードを取得する」に移動しました |
imported>Administrator 編集の要約なし |
||
| 1行目: | 1行目: | ||
ウインドウ上でキーコードが取得できると、[[スペースキー]]に再生・停止などを割り当てたり、[[ファンクションキー]]などに[[ショートカット]]を割り当ててまるで[[COBOL]]で作った業務システムかのようなアプリに出来たりと、何かと捗ると思う。 | ウインドウ上でキーコードが取得できると、[[スペースキー]]に再生・停止などを割り当てたり、[[ファンクションキー]]などに[[ショートカット]]を割り当ててまるで[[COBOL]]で作った業務システムかのようなアプリに出来たりと、何かと捗ると思う。 | ||
== | == 実装 == | ||
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);
}
}