2010-05-03 35 views
0

我正在使用NSTreeController來管理NSOutlineView的節點。當用戶添加了一個新的項目,我創建了一個新對象,並插入:如何在使用NSTreeController時查找NSOutlineView行索引

EntityViewEntityNode *newNode = [EntityViewEntityNode nodeWithName:@"New entity" entity:newObject]; 

// Insert at end of group 
// 
NSIndexPath *insertAt = [pathOfGroupNode indexPathByAddingIndex:[selected.children count]]; 
[entityCollectionTreeController insertObject:newNode atArrangedObjectIndexPath:insertAt]; 

現在我想開表列編輯,以便用戶可以命名新項目。這似乎是合乎邏輯的:

NSInteger row = [entityCollectionOutlineView rowForItem:newNode]; 
[entityCollectionOutlineView editColumn:0 row:row withEvent:nil select:YES]; 

但是,行總是-1,指示找不到對象。四處探查揭示了樹控制器實際上不是將我的對象直接放在樹中,而是將它們包裝在它自己的節點對象中。

任何人都可以深入瞭解如何獲取相對於大綱視圖的行索引,所以我可以這樣做(沒有,希望列舉大綱視圖中的所有內容並找出映射回我的節點?)

回答

0

當您將它得到在大綱視圖中自動選擇一個新的節點。所以你可以通過使用...

NSInteger selectedRow = [entityCollectionOutlineView selectedRow]; 
+0

工程很好,謝謝! – user308405 2010-05-03 07:18:29

相關問題