2010-05-31 70 views
1

我有一個對象(OTNodeDatum)(OT爲OutlineTest)設置爲NSTreeNode中表示的對象。 NSTreeNode是NSTreeController的屬性頁面中顯示的類。addChild等使用NSTreeController和NSTreeNode(雪豹)

我有基於文檔的應用程序,沒有核心數據。在MyDocument init中,我使用包含一個項目的NSMutableArray和具有包含單個屬性(是,名稱)的表示對象的NSTreeNode設置內容。

Add按鈕,添加子鍵,刪除鍵,通過接口生成器掛在NSTreeController加動作等

它可以在一定程度上。

當我做一個添加時,我得到一個新的空白行,我可以編輯,但當我離開單元格時插入的文本消失。

當我做一個刪除,東西被刪除。

當我添加孩子時,沒有任何反應。

我想我必須繼承NSTreeNode或NSTreeController以獲得正確的行爲,除了添加新的樹節點之外,還要添加子節點並添加新的表示對象。

這是正確的軌道?如果我繼承了NSTreeController,那麼我會重寫add,addChild來獲得正確的結果嗎?我可以搞砸了什麼?我似乎無法找到任何指導,雖然我花了很長時間看。

謝謝。

約翰五世

回答

2

看來,正確的方式做事,或者至少,一個方法,就是用

-(void)insertObject:(id)object atArrangedOjectIndexPath:(int)index; 

首先創建representedObject,創建一個新的NSTreeNode與代表的對象,然後插入它。比簡單地將添加按鈕連接到樹控制器更多的工作,但(希望)使用NSTreeNode的優勢彌補了它。