2014-04-05 57 views
0

NSArrayControllerarrangedObjects屬性返回一個包含被控對象的數組。該陣列是可觀的,所以我能做到這一點:從NSOutlineController觀察排列的對象

[_myArrayController addObserver:self forKeyPath:@"arrangedObjects.myProperty" options:0 context:myContext]; 

任何時間任何控制器的對象的myProperty屬性被修改時,有人告訴我這件事。

現在我需要使用NSOutlineView完全相同的東西。然而,NSOutlineViewarrangedObjects屬性返回NSTreeNodes的數組,所以我需要做這樣的事情:

[_myArrayController addObserver:self forKeyPath:@"arrangedObjects.representedObject.myProperty" options:0 context:myContext]; 

但是,這是不允許的,因爲representedObject不兼容KVC。

有沒有簡單的方法來做我所需要的?

+0

我以爲NSTreeController的arrangeObjects返回了單個代理根節點,那麼arrangeObjects.childNodes.representedObject.myProperty是否也能工作?即使你有幾個頂級節點,就我所知,你可以通過arrangeObjects.childNodes獲得它們。 – stevesliva

+0

這是真的,但這也不起作用 – tarmes

回答

0

事實證明,使用簡單的「arrangeObjects.myProperty」的作品!

+0

因此,這適用於樹中的所有對象? – stevesliva