我正在設置綁定到NSTreeController的NSOutlineView,該實例填充了NSTreeNode
實例,後者使用[NSTreeNode treeNodeWithRepresentedObject:...]
附加了我的自定義NodeData對象。 大綱視圖呈現得很好,所有數據都像預期的那樣,都很好。NSOutlineView + NSTreeNode:我的自定義數據在哪裏?
現在在大綱視圖的委託中,我試圖通過 outlineView:willDisplayCell:forTableColumn:item:
方法更改呈現樣式。
但是,item
參數不會讓我回到我的自定義數據!
id stuff = [item representedObject];
產生NSTreeNode
類的一個實例,其中的項目是NSTreeControllerTreeNode
。
這是怎麼回事? 根據所有的文檔和示例代碼,我能找到的representedObject調用應該給我構建樹時,後面我塞到NSTreeNode的NodeData
對象..
完全一無所知,因爲我似乎有這唯一的人問題,所以我必須在某個地方做一些非常愚蠢的事情 - 但我看不出代碼有什麼問題。
填充編程方式使用setContent:[dataSource sillyHack]
這種瑣碎內容的樹控制器顯示相同的行爲:
- (NSMutableArray *) sillyHack
{
NSMutableArray *nodeArray = [NSMutableArray array];
NodeData *scaleTypeListNode = [[NodeData alloc] initWithName:@"123"];
NSTreeNode *scaleTypeListTreeNode = [NSTreeNode treeNodeWithRepresentedObject:scaleTypeListNode];
[scaleTypeListNode release];
[nodeArray addObject:scaleTypeListTreeNode];
return nodeArray;
}
任何幫助表示讚賞。