public override void FlagsChanged(NSEvent theEvent)
{
var theKey = (NSEventModifierMask)Enum.ToObject(typeof(NSEventModifierMask), (uint)theEvent.ModifierFlags & 0xFFFF0000);
int count = Util.NumberOfSetBits((int)theKey);
//Console.WriteLine(count);
if (theKey == 0 || lastKeyCount > count)
{
Host.onKeyUp(new KeyEventArgs(theEvent));
//Console.WriteLine("keyUp");
}
else
{
Host.onKeyDown(new KeyEventArgs(theEvent));
//Console.WriteLine("keyDown");
}
lastKeyCount = count;
base.FlagsChanged(theEvent);
}