使用 KeyPressed 检测 MouseDown
Detect MouseDown with KeyPressed
有没有办法检测 Shift 之类的键是否在 Xamarin.mac 应用程序中的 MouseDown 之类的任何鼠标事件上?我已经将一些自定义视图加载到 StackView 中,它们都应该 selectable。选择单个视图没问题,但我想 select 多个视图,例如标准 selection 模式,使用 Shift、Command 等
感谢您的帮助
在 MouseDown
事件的 NSEvent
中,您可以检查 ModifierFlags
属性 是否有任何 modifier 键被按下由用户。
public override void MouseDown(NSEvent theEvent)
{
base.MouseDown(theEvent);
// Report true if the user is holding the CMD down while performing a mouse down
Console.WriteLine(theEvent.ModifierFlags.HasFlag(NSEventModifierMask.CommandKeyMask));
}
您可以检查的修改键:
public enum NSEventModifierMask : ulong
{
AlphaShiftKeyMask = 65536uL,
ShiftKeyMask = 131072uL,
ControlKeyMask = 262144uL,
AlternateKeyMask = 524288uL,
CommandKeyMask = 1048576uL,
NumericPadKeyMask = 2097152uL,
HelpKeyMask = 4194304uL,
FunctionKeyMask = 8388608uL,
DeviceIndependentModifierFlagsMask = 4294901760uL
}
有没有办法检测 Shift 之类的键是否在 Xamarin.mac 应用程序中的 MouseDown 之类的任何鼠标事件上?我已经将一些自定义视图加载到 StackView 中,它们都应该 selectable。选择单个视图没问题,但我想 select 多个视图,例如标准 selection 模式,使用 Shift、Command 等
感谢您的帮助
在 MouseDown
事件的 NSEvent
中,您可以检查 ModifierFlags
属性 是否有任何 modifier 键被按下由用户。
public override void MouseDown(NSEvent theEvent)
{
base.MouseDown(theEvent);
// Report true if the user is holding the CMD down while performing a mouse down
Console.WriteLine(theEvent.ModifierFlags.HasFlag(NSEventModifierMask.CommandKeyMask));
}
您可以检查的修改键:
public enum NSEventModifierMask : ulong
{
AlphaShiftKeyMask = 65536uL,
ShiftKeyMask = 131072uL,
ControlKeyMask = 262144uL,
AlternateKeyMask = 524288uL,
CommandKeyMask = 1048576uL,
NumericPadKeyMask = 2097152uL,
HelpKeyMask = 4194304uL,
FunctionKeyMask = 8388608uL,
DeviceIndependentModifierFlagsMask = 4294901760uL
}