ここで説明されているように、メディア キー イベント (Macbook では Play、Pause、Next、Prev) を受け取るために、NSApplication の sendEvent (C# 用語では SendEvent) メソッドをオーバーライドするために、MonoMac で NSApplication をサブクラス化する必要があります: Mac キーボードの再生/一時停止イベントをリッスンするそしてここ:https ://bitbucket.org/nkreeger/whitedragon/src/6f530c8a34a7/component/sbAppleMediaKeyController.mm
これまでのところ、私はこのコードを思いつきました:
class MainClass
{
static void Main (string[] args)
{
MyApp.Init ();
MyApp.Main (args);
}
}
class MyApp : NSApplication
{
public override void SendEvent (NSEvent theEvent)
{
Console.WriteLine ("event received!");
base.SendEvent (theEvent);
}
public override void SetMainMenu (NSMenu aMenu)
{
Console.WriteLine ("main menu set!");
base.SetMainMenu (aMenu);
}
}
ただし、コンソール出力が得られないため、SendEvent または SetMainMenu (SetMainMenu は起動時に 1 回呼び出す必要があるため、テスト目的で追加しました) は呼び出されません。
これを行う正しい方法は何ですか?