Xamarin.Mac 如何在应用程序级别捕获按键事件

How to capture key down events at application level in Xamarin.Mac

我有一个 Xamarin.Forms 应用程序,并使用主 window 中的 PreviewKeyDown 事件在 WPF 中成功捕获了应用程序级按键按下事件。

如何在 AppDelegate 或其他地方为 Xamarin.Mac 做同样的事情?

您可以在本地级别的 AppDelegate DidFinishLaunching 中添加一个 NSEvent 处理程序来监控 NSEventMask.

的任意组合
public override void DidFinishLaunching(NSNotification notification)
{
    NSEvent.AddLocalMonitorForEventsMatchingMask(NSEventMask.KeyDown, (NSEvent theEvent) =>
    {
        Console.WriteLine(theEvent);
        return theEvent;
    }); 

    Forms.Init();
    LoadApplication(new App());
    base.DidFinishLaunching(notification);
}