假设我有一个 NSTableView(例如,a
)和一个 NSOutlineView(例如,b
)。
在a
我试图获取所有选定项目的父项目的数据源中b
。在行号中。我想要第一个被选中的项目,rowIndex
并且我想将此字符串连接到该项目的父项的名称。例如:a
rowIndex
b
a
- 1 和 1.1
- 2
并且b
:
- 1
- 1.1(已选)
- 2(已选择)
- 3
这是- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
的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;
问题是当我展开一个项目时,[outlineView parentForItem:[outlineView itemAtRow:index]]
总是返回最后一个展开的项目。
I am trying to have a list of selected items and their parents. When I expand an item, all items change their parent to last expanded item
.
Am I doing something wrong?
Thank you in advance.