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

标签 macos cocoa core-data nstableview nsarraycontroller

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

现在我有一个 NSTableView 绑定(bind)到一个 NSArrayController,其中包含使用 CoreData 存储的所有 Article 对象。我希望它显示“未读”组下的所有未读文章,以及“已读”组下的所有已读文章。

我知道方法

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

在 NSTableViewDelegate 中。然而,这暗示我们必须在 NSArrayController 中有实际的行显示“已读”和“未读”,并将其提升为组。由于 NSArrayController 包含从 CoreData 中提取的 Article 对象,我该如何执行此操作?

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

最佳答案

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

关于macos - 使用 CoreData 支持的 NSArrayController 在 NSTableView 中创建组行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17000753/

相关文章:

swift - 在 Swift 核心数据应用程序中的哪里添加 `addPersistentStoreWithType:configuration:URL:options:error:`?

javascript - Safari - 按箭头键导航图库时发出错误声音

java - 在 Mac OS X Lion 中初始化 Java VM 时出错

iphone - 如何将登录信息附加到文本文件

cocoa-touch - 更改将来 NSManagedObject 插入的某些属性的默认值?

iOS Core Data 获取新插入的、尚未保存的对象

ios - 如何从命令行使用 Qt 5.2 和 qmake 构建 ios 可执行文件?

python - 在本地 virtualenv 中启动 GAE 时没有名为警告的模块

ios - NSManagedContext 需要很长时间才能持久

objective-c - Xcode 应用卡在横向模式