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 и выше

Другие вопросы по тегам