Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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

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 如何在NSOutLineView中获取特定项目?_Objective C_Cocoa_Nsoutlineview - Fatal编程技术网

Objective c 如何在NSOutLineView中获取特定项目?

Objective c 如何在NSOutLineView中获取特定项目?,objective-c,cocoa,nsoutlineview,Objective C,Cocoa,Nsoutlineview,我目前正在使用Apple的SourceView示例 作为一项任务,我想在右键单击时将应用程序底部的菜单更改为上下文菜单。现在我实现了一个NSMenuDelegate,并使用menuWillOpen方法在菜单中进行调整 我现在面临的问题是,我无法获得有关我在树中右键单击的对象的信息 我得到了项目的索引,但无法得到项目本身 NSInteger *clickedRow = [myOutlineView clickedRow]; 我试过这个,但什么也没给我 ChildNode *item = [myO

我目前正在使用Apple的SourceView示例

作为一项任务,我想在右键单击时将应用程序底部的菜单更改为上下文菜单。现在我实现了一个
NSMenuDelegate
,并使用
menuWillOpen
方法在菜单中进行调整

我现在面临的问题是,我无法获得有关我在树中右键单击的对象的信息

我得到了项目的索引,但无法得到项目本身

NSInteger *clickedRow = [myOutlineView clickedRow];
我试过这个,但什么也没给我

ChildNode *item = [myOutlineView itemAtRow:clickedRow];
我希望有人能帮我


谢谢。

您如何确定
单击的路径?
有一点似乎是错误的,那就是您将
clickedRow
存储在整数指针(NSInteger*)中,而不是整数中。
因此
itemAtRow:
可能使用任意地址而不是实际的行索引来查找项目。
另一件事是,
itemAtRow:
返回一个
NSTreeControllerNode*
而不是您假设的
ChildNode*

你应该使用

[[myOutlineView itemAtRow:clickedRow] representedObject];
相反

-(NSInteger)单击显示;本机来自NSTableView。为了方便起见,我只是将其存储在自己的变量中。