2017-03-12 2 views
1

Y at-il un moyen de détecter si une clé comme Shift sur n'importe quel événement de la souris comme MouseDown dans une application Xamarin.mac? J'ai des vues personnalisées chargées dans StackView qui devraient toutes être sélectionnables. La sélection d'une vue unique est pas de problème, mais je veux sélectionner plusieurs vues comme le modèle de sélection standard avec Shift, Command, etc.Détecter MouseDown avec KeyPressed

Merci pour votre aide

Répondre

2

Dans le NSEvent de votre événement MouseDown vous pouvez vérifier la ModifierFlags propriété pour tout modificateur touches étant pressé par l'utilisateur.

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)); 
    } 

Les touches de modification que vous pouvez vérifier:

public enum NSEventModifierMask : ulong 
{ 
    AlphaShiftKeyMask = 65536uL, 
    ShiftKeyMask = 131072uL, 
    ControlKeyMask = 262144uL, 
    AlternateKeyMask = 524288uL, 
    CommandKeyMask = 1048576uL, 
    NumericPadKeyMask = 2097152uL, 
    HelpKeyMask = 4194304uL, 
    FunctionKeyMask = 8388608uL, 
    DeviceIndependentModifierFlagsMask = 4294901760uL 
} 
+0

C'est exactement ce que je cherchais, merci beaucoup !! –

+0

@DanielDirtyNativeMartin Heureux qu'il a aidé ... – SushiHangover