Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSMenu canelTracking在Mac OSx 10.5上不起作用_Objective C_Cocoa_Osx Leopard_Nsmenu_Nscombobox - Fatal编程技术网

Objective c NSMenu canelTracking在Mac OSx 10.5上不起作用

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中的NSCOMBOX显示项目列表。当我在NSCOMBOX中选择任何选项时,菜单应该被取消


为了关闭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)