我在NSMenu中使用NSComboBox显示项目列表。当我在NSComboBox菜单中选择任何选项时,将被关闭。

要关闭NSMenu I m,请使用10.6及更高版本中的cancelTrackingWithoutAnimation,它可以正常工作。在10.5的情况下,我正在使用cancelTracking,但它没有关闭NSMenu。

最佳答案

我通过使用Carbon API CancelMenuTracking()解决了该问题,

CancelMenuTracking(
  MenuRef   inRootMenu,
  Boolean   inImmediate,
  UInt32    inDismissalReason)


使用_NSGetCarbonMenu获取NSMenu的menuref。

menuRef = _NSGetCarbonMenu(myMenu);

CancelMenuTracking(menuRef,YES,kHIMenuDismissedByCancelMenuTracking);表示10.5,CancelMenuTracking(menuRef,YES,0);表示10.6及以上

关于objective-c - NSMenu canelTracking在Mac OSx 10.5上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24952743/

10-12 05:42