我在 NSMenu 中使用 NSComboBox 来显示项目列表。当我在 NSComboBox 菜单中选择任何选项时,应该会被忽略。
要关闭 NSMenu,我正在使用 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/