NSArrayController
的arrangedObjects
屬性返回一個包含被控對象的數組。該陣列是可觀的,所以我能做到這一點:從NSOutlineController觀察排列的對象
[_myArrayController addObserver:self forKeyPath:@"arrangedObjects.myProperty" options:0 context:myContext];
任何時間任何控制器的對象的myProperty屬性被修改時,有人告訴我這件事。
現在我需要使用NSOutlineView
完全相同的東西。然而,NSOutlineView
的arrangedObjects
屬性返回NSTreeNodes的數組,所以我需要做這樣的事情:
[_myArrayController addObserver:self forKeyPath:@"arrangedObjects.representedObject.myProperty" options:0 context:myContext];
但是,這是不允許的,因爲representedObject不兼容KVC。
有沒有簡單的方法來做我所需要的?
我以爲NSTreeController的arrangeObjects返回了單個代理根節點,那麼arrangeObjects.childNodes.representedObject.myProperty是否也能工作?即使你有幾個頂級節點,就我所知,你可以通過arrangeObjects.childNodes獲得它們。 – stevesliva
這是真的,但這也不起作用 – tarmes