2016-03-04 1 views
2

J'ajoute actuellement un NSMenuItem à mon NSMenu et je suis capable de détecter et de gérer avec succès l'événement click. Cependant, je veux ajouter une deuxième option et détecter si l'utilisateur a cliqué sur le ligneMenu tout en maintenant SHIFTSwift NSMenuItem détecter shift cliquez sur

let menuItem = myMenu?.submenu?.addItemWithTitle("Click me", action: "itemClicked:", keyEquivalent: "") 

Est-il possible de le faire? J'ai regardé keyEquivalent mais je ne vois rien à la façon de le faire fonctionner.

Merci

+0

observation mondiale pour les touches shift/commande fonctionnent, mais ce code n'est pas exécuté lorsque l'utilisateur navigue à travers les sous-menus donc cela ne fonctionne pas @leodabus – VTS12

+0

merci pour la réponse, j'ai essayé de le changer en addLocalMonitorForEventsMatchingMask et cela ne marche toujours pas. .pas certain de pourquoi cela a été downvoted – VTS12

+0

des idées @LeoDabus? Thx encore – VTS12

Répondre

3

Merci à @LeoDabus pour un peu d'aide, mais j'ai pu résoudre ce dans le gestionnaire d'événements pour mon NSMenuItem avec le code suivant:

if let event = NSApp.currentEvent { 
    if event.modifierFlags.contains(.ControlKeyMask) { 
     // success! 
    } 
} 

heureux de codage

+0

devrait également fonctionner 'si NSApplication.sharedApplication(). currentEvent? .modifierFlags.contains (.ControlKeyMask) == true {' –