キーと値の 2 つの列を持つ NSOutlineView を使用する Mac OS X アプリケーションがあります。値の列を編集できます。NSString または NSDictionary が連続しています。セルの値のコードは次のようになります。
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
if ([[[tableColumn headerCell] stringValue] isEqualToString:@"Key"]) {
id parentItem = [outlineView parentForItem:item] ? [outlineView parentForItem:item] : root;
return [[parentItem allKeysForObject:item] objectAtIndex:0];
} else {
if ([item isKindOfClass:[NSString class]]) {
return item;
} else if ([item isKindOfClass:[NSDictionary class]]) {
return @"";
} else {
return nil;
}
}
}
フィールドの値が同じ文字列値を持つ場合を除いて、正常に機能しています。常にその値を持つ最初の要素をキーとして表示するため、同じキー値がすべての同じ値に対して表示されます。この問題を解決する方法を知っている人はいますか?