如何解决MAC OS-如何捕获按下的三个键-Xamarin.Mac?
我正在创建MacOS应用程序,我必须捕获按下的三个相同的键,例如shift + A +感叹号
我将此方法放入AppDelegate.cs
NSEvent.AddLocalMonitorForEventsMatchingMask(NSEventMask.KeyUp | NSEventMask.FlagsChanged,FlagsChanged);
我在这里收到钥匙
private static NSEvent FlagsChanged(NSEvent keyEvent)
{
var key = (NSKey)keyEvent.KeyCode;
if (!(keyEvent.Window?.Identifier is null))
{
if (key.Equals(NSKey.Escape))
return (keyEvent);
var especialKeyspressed = KeyConverterHelper.ConvertFlagsToString(keyEvent.ModifierFlags);
var keypressed = KeyConverterHelper.ConvertVirtualKeyToKeypressed(keyEvent.KeyCode);
if (key.Equals(NSKey.Command) ||
key.Equals(NSKey.Shift) ||
key.Equals(NSKey.Control) ||
key.Equals(NSKey.Return) ||
key.Equals(NSKey.Tab) ||
key.Equals(NSKey.Option) && keypressed != Keypressed.None)
{
return (keyEvent);
}
var chars = keyEvent.Characters;
if (keypressed == Keypressed.None)
return (keyEvent);
//todo: GET THE KEYS pressed WHERE (SHIFT + A + Exclamation ) for example
}
return (keyEvent);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。