2013-06-08 2 views
7

코어 데이터 모델 내에 기사 개체가 저장되어 있다고합시다. 각 기사는 사용자가 읽은 기사의 양을 나타내는 읽기 진행 속성을 유지 관리합니다. 사용자가 기사를 완전히 읽으면 기사는 "읽음"으로 표시됩니다. 그 전에는 "읽지 않은 상태"로 표시됩니다.코어 데이터를 사용하여 NSTableView에서 그룹 행 만들기 NSArrayController

이제 CoreData를 사용하여 저장된 모든 Article 개체를 포함하는 NSArrayController에 NSTableView가 바인딩되었습니다. 읽지 않은 모든 기사를 "읽지 않은"그룹 아래에 표시하고 "읽음"그룹 아래에있는 모든 기사를 읽길 원합니다.

은 내가 NSTableViewDelegate의 방법

- (BOOL)tableView:(NSTableView *)tableView isGroupRow:(NSInteger)row 

에 대해 알고. 그러나 이것은 그룹으로 승격 될 NSArrayController 내에서 "읽음"과 "읽지 않음"을 말하는 실제 행을 가져야 함을 암시합니다. NSArrayController에는 CoreData에서 가져온 기사 객체가 포함되어 있으므로 어떻게해야합니까?

NB :이 여기 내 첫 번째 질문입니다, 나는 코코아에 새로 온 사람, 나를 쉽게 이동하십시오 :

+0

2 세 아직 답변 없음. 그동안 해결책을 찾았습니까? –

+0

나는 또한 그런 특징을 찾고 있지만 해결책이 없다. 당신이 그렇게 할 수 있었습니까? 그렇다면 달성 방법을 알려주십시오. –

+0

하나의 솔루션은 이와 같은 타사 FRC를 사용하는 것입니다. https://github.com/konstantinpavlikhin/KSPFetchedResultsController – CryingHippo

답변

0

을 내가 대신 NSTableView는 및 NSArrayController의 그룹화 만들 NSOutlineview 및 NSTreeController을 사용하는 것이 좋습니다.

0

그룹 행을 포함하여 수행하려는 NSTableView의 컨텐트를 정확하게 포함하는 사용자 정의 클래스 인스턴스로 NSArrayController를 수동으로 채워야합니다. 제어기는 올바른 순서로 채워 져야합니다. 따라서 그룹 머리글 개체, 일부 데이터 개체, 새 머리글 개체 등으로 시작해야합니다. 사용자 정의 클래스에는 다음과 같은 특성이 있어야합니다.

그룹 헤더의 문자열 값. 행이 그룹 헤더가 아닐 때 nil입니다.

부울 값은 isGroupHeader입니다. 쉬운 tableView : isGroupRow : 구현에 필요합니다.

일반 데이터의 NSManagedObject 값입니다. 행이 그룹 헤더 일 때 nil입니다.

모든 NSTableView 대리인을 구현하여 적절하게 그룹화 된 테이블 뷰를 얻을 수있는 모든 도구가 있습니다.

관련 문제