我有一個NSArrayController的內容數組綁定到文件的所有者(我的窗口控制器)與模型的關鍵路徑設置爲chartData.events chartData是NSObject的一個子類和事件是一個合成的NSMutableArray屬性。如何通知綁定到NSArrayController的NSMutableArray的更改?
chartData需要知道NSArrayController何時向event屬性添加事件對象並將其刪除。我認爲我應該通過實現可變索引訪問器來做到這一點。我要把它放到我的chartData類實現:
- (void)insertObject:(TNLEvent *)event inEventsAtIndex:(NSUInteger)index {
[self.events insertObject:event atIndex:index];
return;
}
- (void)insertEvents:(NSArray *)eventArray atIndexes:(NSIndexSet *)indexes {
[self.events insertObjects:eventArray atIndexes:indexes];
return;
}
但NSArrayController中的add時沒有這些方法被稱爲:發送消息。我假設NSArrayController使用的關鍵路徑不映射到這些方法,否則它們不是鍵值兼容的。如何知道何時將對象添加到events
或從中刪除?
UPDATE: 我推翻合成存取setEvents
,結果發現,該陣列控制器使用該方法,每次是將對象添加到它所控制的陣列。因此,可變索引訪問器永遠不會被使用。這並不能幫助我,因爲我仍然不知道添加了哪個對象。