Objective c NSMenu canelTracking在Mac OSx 10.5上不起作用
我正在使用NSMenu中的NSCOMBOX显示项目列表。当我在NSCOMBOX中选择任何选项时,菜单应该被取消Objective c NSMenu canelTracking在Mac OSx 10.5上不起作用,objective-c,cocoa,osx-leopard,nsmenu,nscombobox,Objective C,Cocoa,Osx Leopard,Nsmenu,Nscombobox,我正在使用NSMenu中的NSCOMBOX显示项目列表。当我在NSCOMBOX中选择任何选项时,菜单应该被取消 为了关闭NSMenu,我在10.6及以上版本中使用了cancelTrackingWithoutAnimation,效果很好。在10.5的情况下,我使用的是cancelTracking,但它并没有取消NSMenu 我通过使用carbon APICancelMenuTracking()解决了这个问题 使用_NSGetCarbonMenu获取NSMenu的菜单F menuRef=_NSGet
为了关闭NSMenu,我在10.6及以上版本中使用了cancelTrackingWithoutAnimation,效果很好。在10.5的情况下,我使用的是cancelTracking,但它并没有取消NSMenu 我通过使用carbon API
CancelMenuTracking()
解决了这个问题
使用_NSGetCarbonMenu获取NSMenu的菜单F
menuRef=_NSGetCarbonMenu(我的菜单)
CancelMenuTracking(menuRef,YES,khimenudismissedbyconcelmenutracking)代码>用于10.5和取消菜单跟踪(menuRef,是,0)
对于10.6及以上版本有两个示例代码使用了取消跟踪
,请尝试运行10.5中的代码,看看它们是否有效。如果它们不起作用,那就是一个bug,如果它们起作用,那么你的代码可能就是它不起作用的原因。
CancelMenuTracking(
MenuRef inRootMenu,
Boolean inImmediate,
UInt32 inDismissalReason)