2010-05-31 3 views
1

NSTreeNode에서 표현 된 객체가 될 객체 (OTNodeDatum) (OutlineTest의 경우 OT)가있는 설정이 있습니다. NSTreeNode는 NSTreeController의 속성 페이지에 표시된 클래스입니다.NSTreeController와 NSTreeNode (스노우 레오파드)를 사용하여 addChild 등

문서 기반 앱이 있으며 핵심 데이터가 없습니다. MyDocument init에서 하나의 항목을 포함하는 NSMutableArray로 내용을 설정합니다. NSTreeNode는 단일 속성 (예, 이름)을 포함하는 표현 된 객체로 구성됩니다. 등 NSTreeController 추가 행동을 인터페이스 빌더를 통해 엮은

추가 버튼, 어린이 버튼을 추가 삭제 버튼은

그것은 지점까지 작동합니다.

추가 할 때 편집 할 수있는 새로운 빈 줄이 생기지 만 셀을 떠날 때 삽입 된 텍스트가 사라집니다.

내가 삭제를하면 삭제됩니다.

자식을 추가하면 아무 일도 발생하지 않습니다.

NSTreeNode 또는 NSTreeController를 하위 클래스에 추가해야 자식을 추가하고 새 트리 노드를 추가하는 대신 새로 표시된 개체를 추가하는 측면에서 올바른 동작을 얻을 수 있다고 생각합니다.

올바른 위치에 있나요? 내가 NSTreeController를 하위 클래스로 만들면 추가, addChild를 오버라이드하면 옳은 일이 발생합니다. 내가 뭘 망칠 수 있니? 오랫동안 보았지만 나는 이것에 대한 지침을 찾을 수없는 것 같습니다.

감사합니다.

존 V

답변

2

그것은 올바른 방법이 일을, 또는 적어도, 방법을 사용하는 것 같습니다 먼저 그 표현 객체로 새로운 NSTreeNode를 작성, representedObject을 만들

-(void)insertObject:(id)object atArrangedOjectIndexPath:(int)index; 

, 그것을 삽입하십시오. 단순히 트리 컨트롤러에 추가 버튼을 연결하는 것보다 많은 작업이 있지만, (잘하면) NSTreeNode을 사용하면 얻을 수있는 이점을 보완 할 수 있습니다.

관련 문제