GOTO UPDATE

I have a `NSTreeController` controller that binded (`Content Object`) to content (`NSTreeNode *`) of my application delegate. Also I have `NSOutlineView` in my window that binded to my controller.

Everything works fine, the content is displayed in outline view, but I can not `add` (`addChild`, `insert` etc) any items though controller methods and `canAdd` (`canAddChild` etc) methods of controller always return `NO` (I have a buttons which "enabled" is binded to controller and this buttons are disabled).

Where is my mistake?

UPDATE

I want to give some more information about my situation.

I have a MyNode class:

```
@interface MyNode : NSTreeNode {
    NSString* title;
}

@property (retain) NSString* title;

@end

```

I also have the NSTreeController object in my nib file. The `childrenKeyPath` is set to `childNodes` in IB and the `countKeyPath` and `isLeafKeyPath` are empty.

The controller mode is set to `Class` and Class name is `MyNode`.

The **Content Object** (not Content Array) is binded to `MyDocument`s `rootNode` property:

```
@property (readonly) MyNode* rootNode;

...

rootNode = [[MyNode alloc] init];
rootNode.title = @"Root";

MyNode *childNode = [[MyNode alloc] init];
childNode.title = @"Child";

[[rootNode mutableChildNodes] addObject:childNode];

```

And I have NSOulineView in my window which `content` is binded to TreeController's `arrangedObjects`. The content is displayed. I even can edit the title of my nodes, but I can not add or insert any (child) nodes through my TreeController.

I have 2 buttons: "Add Child" and "Insert Child" connected to the `addChild` and `insertChild` actions of TreeController and enabled is binded to `canAddChild` and `canInsertChild` properties of TreeController. The buttons are disabled.. and I cannot add or insert any child nodes.

Where is mistake?

UPDATE 2

I have some good news =)

I changed my Document class like this:

```
@interface MyDocument : NSDocument {
    NSMutableArray *rootNodes;
    MyNode* rootNode;
}

@property (readonly) NSArray* rootNodes;

..

rootNodes = [[NSMutableArray alloc] init];

rootNode = [[MyNode alloc] init];
rootNode.title = @"Root";

MyNode* childNode = [[MyNode alloc] init];
childNode.title = @"Child";

[[rootNode mutableChildNodes] addObject:childNode];

[rootNodes addObject:rootNode];

```

And binded **Content Array** (not Content Object) to `MyDocument.rootNodes` property and everything works fine.

Why doesn't the addXXX methods work with single object? I can not find anything about it in documentation... 

And why can TreeController add root elements to the `rootNodes`? `rootNodes` is the `NSArray`, not the `NSMutableArray`.