두 개의 관계, parent
및 children
이있는 특정 엔터티의 간단한 트리로 구성된 핵심 데이터 모델이 있습니다. NSOutlineView
이 NSTreeController
에 바인딩 된 NSTreeController
모델을 관리하고 있습니다.NSTreeController, NSOutlineView 및 Core Data를 "보이지 않는"루트 항목과 함께 사용하려면 어떻게해야합니까?
내 문제는 단일 루트 개체가 필요하지만 개요보기에 표시하면 안되며 하위보기 만 개요보기의 최상위에 표시되어야합니다. 인터페이스 작성기에서 의 페치 조건자를 parent == nil
으로 설정하면 루트 항목이 개요보기의 최상위 항목으로 표시되는 것을 제외하면 모든 것이 올바르게 작동합니다.
내 항목의 속성이 isRootItem
이며 루트 항목에만 해당됩니다.
내 모델은 다음과 같습니다
Node 1
|
+-Node 2
| |
| +-Node 5
|
Node 3
|
Node 4
개요보기는 다음과 같아야합니다
Outline View Image http://menumachine.com/quickies/nodes.png
내가의 최상위 수준에 노드 2, 3, 4를 표시해야 윤곽선보기 (노드 1은 보이지 않아야 함)이지만 부모는 여전히 "노드 1"이어야합니다. 노드 1은 의 값이 isRootItem
이고 다른 모든 값은 NO
입니다.
트리 컨트롤러의 fetch 조건자를 parent.isRootItem == 1
으로 설정하면 트리가 올바르게 표시되지만 최상위 수준에 새 항목을 추가하면 트리 컨트롤러가 "보이지 않는"루트를 지정하지 않으므로 실패합니다 새 항목의 부모 항목입니다.
이 상황에서 NSTreeController
/NSOutlineView
조합을 사용할 수있는 방법이 있습니까?
수표없이 'parent.isRootItem'으로 간단히 작성할 수 있습니다. – Abizern
고마워, 네 말이 맞아. –