NSTableView (例: a
) と NSOutlineView (例: b
) があるとします。
のデータソースでa
、 の選択されたすべてのアイテムの親アイテムを取得しようとしていますb
。行番号で。rowIndex
ofa
のrowIndex
th 番目に選択されたアイテムが必要で、この文字列をこのアイテムの親の名前に連結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]]
常に最後に展開されたアイテムが返されることです。
選択したアイテムとその親のリストを取得しようとしています。アイテムを展開すると、すべてのアイテムの親が に変わりますlast expanded item
。
私は何か間違ったことをしていますか?
前もって感謝します。