2014-07-25 4 views
0

J'utilise NSComboBox dans NSMenu pour afficher une liste d'éléments. Lorsque je choisis une option dans le menu NSComboBox devrait être rejeté.NSMenu canelTracking ne fonctionne pas sous Mac OSx 10.5

Pour annuler NSMenu I m en utilisant cancelTrackingWithoutAnimation pour 10.6 et plus, cela fonctionne correctement. Dans le cas de 10,5 j'utilise cancelTracking mais il ne rejette pas NSMenu.

+0

Il existe un exemple de code couple qui utilise 'cancelTracking', essayez exécuter ceux 10.5 et voir si elles fonctionnent ou non. Si elles ne fonctionnent pas alors c'est un bug, si elles fonctionnent, alors votre code est probablement la raison pour laquelle cela ne fonctionne pas. – TheAmateurProgrammer

Répondre

0

je résolu le problème en utilisant l'API de carbone CancelMenuTracking(),

CancelMenuTracking(
    MenuRef inRootMenu, 
    Boolean inImmediate, 
    UInt32 inDismissalReason) 

Utilisé _NSGetCarbonMenu pour obtenir le RefMenu de NSMenu.

MenuRef = _NSGetCarbonMenu (myMenu);

CancelMenuTracking(menuRef,YES,kHIMenuDismissedByCancelMenuTracking); 10,5 et 10,6 CancelMenuTracking(menuRef,YES,0); et au-dessus

Questions connexes