Как перехватить события нажатия клавиш на уровне приложения в Xamarin.Mac - PullRequest
1 голос
/ 03 мая 2019

У меня есть приложение Xamarin.Forms, и я успешно фиксирую события нажатия клавиши уровня приложения в WPF с помощью события PreviewKeyDown в главном окне.

Как мне сделать то же самое для Xamarin.Mac в AppDelegate или иным образом?

1 Ответ

1 голос
/ 03 мая 2019

Вы можете добавить обработчик NSEvent в DidFinishLaunching AppDelegate на локальном уровне, чтобы отслеживать любую комбинацию 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);
}
...