1

我在 NSMenu 中使用 NSComboBox 来显示项目列表。当我在 NSComboBox 菜单中选择任何选项时,应该会被忽略。

为了解除 NSMenu,我在 10.6 及更高版本中使用了 cancelTrackingWithoutAnimation,它工作正常。在 10.5 的情况下,我正在使用 cancelTracking,但它不会关闭 NSMenu。

4

1 回答 1

1

我通过使用 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 及以上

于 2014-07-26T09:31:34.083 回答