假设我在核心数据模型中存储了一堆Article对象。每篇文章都维护一个阅读进度属性,该属性表示用户已阅读了多少文章。一旦用户完全阅读了该文章,该文章就被标记为“阅读”。在此之前,它将标记为“未读”。
现在我有一个绑定到NSArrayController的NSTableView,其中包含使用CoreData存储的所有Article对象。我希望它显示“未读”组下的所有未读文章,以及“阅读”组下的所有阅读文章。
我知道方法
- (BOOL)tableView:(NSTableView *)tableView isGroupRow:(NSInteger)row
注意:这是我在这里的第一个问题,我是Cocoa的新手,请放轻松我:)
答案 0 :(得分:0)
我建议使用NSOutlineview和NSTreeController来创建分组而不是NSTableView和NSArrayController。
答案 1 :(得分:0)
您必须使用自定义类实例手动填充NSArrayController,该实例完全保存您要完成的NSTableView的内容,包括组行。必须按正确的顺序填写控制器。所以它应该从一个组头对象开始,然后是一些数据对象,一个新的头对象,等等。自定义类应包含以下属性:
组头的字符串值。当行没有组头时为nil。
布尔值isGroupHeader。需要一个简单的tableView:isGroupRow:implementation。
常规数据的NSManagedObject值。当行是组头时为nil。
有了这个,您可以使用所有工具来实现所有NSTableView委托,以获得正确分组的表视图。