Cocoa NSOutlineView行索引在展开项时更改
假设我有一个NSTableView(例如,Cocoa NSOutlineView行索引在展开项时更改,cocoa,nsoutlineview,Cocoa,Nsoutlineview,假设我有一个NSTableView(例如,a)和一个NSOutlineView(例如,b) 在a的数据源中,我试图获取b的所有选定项的父项。在a的行号rowIndex中,我希望将rowIndex作为b的第个选定项,并将此字符串连接到此项父项的名称。例如,a: 1和1.1 二, 和b: 一, 1.1(选定) 2(选定) 三, 这是的-(id)tableView:(NSTableView*)aTableView objectValueForTableColumn:(NSTableColu
a
)和一个NSOutlineView(例如,b
)
在a
的数据源中,我试图获取b
的所有选定项的父项。在a
的行号rowIndex
中,我希望将rowIndex
作为b
的第个选定项,并将此字符串连接到此项父项的名称。例如,a
:
- 1和1.1
- 二,
b
:
- 一,
- 1.1(选定)
- 2(选定)
- 三,
的-(id)tableView:(NSTableView*)aTableView objectValueForTableColumn:(NSTableColumn*)aTableColumn行:(NSInteger)行索引a
NSUInteger index = [[outlineView selectedRowIndexes] firstIndex];
for (NSUInteger i = 0, target = rowIndex; i < target; i++)
index = [[outlineView selectedRowIndexes] indexGreaterThanIndex:index];
NSLog(@"%@", [outlineView [outlineView itemAtRow:index]]);
if([outlineView parentForItem:[outlineView itemAtRow:index]] != NULL) {
return [NSString stringWithFormat:@"%@ %@", [outlineView parentForItem:[outlineView itemAtRow:index]], [outlineView itemAtRow:index]];
} else {
return [outlineView itemAtRow:index];
}
return NULL;
NSUInteger index=[[outlineView selectedRowIndexes]firstIndex];
for(整数i=0,目标=rowIndex;i
问题是,当我展开一个项目时,[outlineView parentForItem:[outlineView itemAtRow:index]
总是返回最后一个展开的项目
我正在尝试列出所选项目及其家长。展开项目时,所有项目都将其父项更改为上次展开的项目
我做错什么了吗
提前感谢。您发现,不能使用简单的整数来表示嵌套数据集中的索引。相反,您需要使用。正如文件所说:
nsindepath类表示
目录树中特定节点的路径
嵌套数组集合。这条路是
称为索引路径
非常感谢。这就是我需要的。