问题描述
我正在创建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 (将#修改为@)