NSMenu canelTracking не работает на Mac OSx 10.5
Я использую NSComboBox внутри NSMenu, чтобы показать список элементов. Когда я выбираю любой параметр в меню NSComboBox, он должен быть закрыт.
Чтобы отклонить NSMenu, я использую cancelTrackingWithoutAnimation для 10.6 и выше, и он отлично работает. В случае 10.5 я использую cancelTracking, но это не отклоняет NSMenu.
1 ответ
Решение
Я исправил проблему с помощью углеродного API CancelMenuTracking()
,
CancelMenuTracking(
MenuRef inRootMenu,
Boolean inImmediate,
UInt32 inDismissalReason)
Использовал _NSGetCarbonMenu, чтобы получить меню NSMenu.
menuRef = _NSGetCarbonMenu (myMenu);
CancelMenuTracking(menuRef,YES,kHIMenuDismissedByCancelMenuTracking);
за 10,5 и CancelMenuTracking(menuRef,YES,0);
для 10,6 и выше