使用CoreData支持的NSArrayController在NSTableView中创建组行

Mut*_*hir 8 macos cocoa core-data nstableview nsarraycontroller

假设我在核心数据模型中存储了一堆Article对象.每篇文章都维护一个阅读进度属性,该属性表示用户已阅读了多少文章.一旦用户完全阅读了该文章,该文章就被标记为"阅读".在此之前,它将标记为"未读".

现在我有一个绑定到NSArrayController的NSTableView,其中包含使用CoreData存储的所有Article对象.我希望它显示"未读"组下的所有未读文章,以及"阅读"组下的所有阅读文章.

我知道这个方法

- (BOOL)tableView:(NSTableView *)tableView isGroupRow:(NSInteger)row
Run Code Online (Sandbox Code Playgroud)

在NSTableViewDelegate中.但是,这暗示我们必须在NSArrayController中将实际行说"读"和"未读",这些行将被提升为组.由于NSArrayController包含从CoreData中提取的Article对象,我该如何进行此操作?

NB:这是我的第一个问题,我是Cocoa的新手,请放轻松我:)

emr*_*tem 0

我建议使用 NSOutlineview 和 NSTreeController 来创建分组,而不是 NSTableView 和 NSArrayController。