NSTreeController, is it not suppose to pick up changes to what it is binded to?

I know NSTreeController is typically used to be synced with NSOutlinedView. I'm attemting to use it to get sections for my UI (not using NSOutlineView).


I have a managed object subclass, that is the section, it has a to many relationship to its items. When new managed objects are created and added to the section, NSTreeController is not automatically adding children. I know this, because I set break point in my datasource methods. The object that was added, is part of the ordered set of the section object (I can see that in the debugger) but it is not part of the NSTreeController. So if I do:


-(NSInteger)numberOfObjectsInSeciton:(NSInteger)section {

NSTreeNode *object = [[self.treeController.arrangedObjects childNodes]objectAtIndex:section];

NSArray *childNodes = [object childNodes];

  return childNodes.count;
}


I get nothing. Now when i add the newly created object, and I call insertObject:atArrangedObjectIndexPath: the item is added. I guess what I'm asking is, if some other object that is a bit removed from the main view controller that has this tree controller, creates a new NSManagedObject and inserts it, shouldn't the tree controller automatically pick up the change, since it is binded (and I am KVO the tree controllers arranged objects)? Or do I have to run each and every change made through the tree controller methods?


Perhaps I should mention that I'm using an ordered to mny relationship for the children. I've ran into some problems with this, and I've read in a couple of places that people were having problems getting NSTreeController to work properly with ordered.

NSTreeController, is it not suppose to pick up changes to what it is binded to?
 
 
Q