Обнаружение MouseDown с помощью KeyPressed

Есть ли способ определить, нажимается ли клавиша, например Shift, на какое-либо событие мыши, такое как MouseDown, в приложении Xamarin.mac? У меня есть несколько пользовательских представлений, загруженных в StackView, и все они должны быть доступны для выбора. Выбор одного представления не проблема, но я хочу выбрать несколько представлений, например стандартный шаблон выбора с помощью Shift, Command и т. д.

Спасибо за вашу помощь


person Daniel DirtyNative Martin    schedule 12.03.2017    source источник


Ответы (1)


В NSEvent события MouseDown вы можете проверить свойство 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
}
person SushiHangover    schedule 12.03.2017
comment
Это именно то, что я искал, большое спасибо!! - person Daniel DirtyNative Martin; 13.03.2017