可可:核心数据 + NSTableView

Posted

技术标签:

【中文标题】可可:核心数据 + NSTableView【英文标题】:Cocoa: Core Data + NSTableView 【发布时间】:2010-01-08 01:13:08 【问题描述】:

我设置了一个核心数据应用程序,一切运行良好。但是有一个小问题。当我将一个新对象插入到我的实体中时,我将它转到我的 NSTableViewCell,在那里我可以将其编辑为我想要的文本,但是有一个小问题,我可以编辑单元格,但我无法取消选择它来保存它对于核心数据,它卡在编辑模式中,我摆脱它的唯一方法是退出应用程序,并且它不会保存我刚刚在我的单元格中给它的新名称。

【问题讨论】:

【参考方案1】:

Apple 提供的 Core Data 教程中介绍了这种功能。它会让你使用NSArrayController,这是一个非常有用的类,用于同步视图(NSTableView)和模型(核心数据)。

我相信这是一个了解其工作原理的好地方:http://developer.apple.com/cocoa/coredatatutorial/index.html

希望对您有所帮助。

【讨论】:

这不是问题。一切都很好,像酸糖一样花花公子,但是当我添加一个新对象时,我无法取消选择一个单元格 还没有自定义代码。以下是绑定的设置方式: NSArrayCtrler 到托管 obj 上下文 TableColumn 值到 Arrayctrler tableviewCell 值到 arrayctrler 我遵循了这个指南:cocoadevcentral.com/articles/000085.php 再看一下指南,你实际上并没有将 NSTableViewCell 绑定到任何东西。 但我用它来代替 NSTextField 您绑定的是列而不是单元格。这将使表格为您处理编辑视图。【参考方案2】:

您使用什么方法将表视图连接到核心数据存储?绑定?数据源?

我的猜测是你根本没有实现这个。如果您刚刚开始,那么我建议您实现一个 NSTableViewDataSource 实例。

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSTableDataSource_Protocol/Reference/Reference.html

【讨论】:

我认为使用 NSArrayController 时 Core Data 不需要 NSTableViewDataSource - 特别是在要求很简单的情况下。 Tom,是的,这不是必需的,但最好至少实现一次,以便更好地理解数据存储和视图之间的交互。尽管如此,您指向 Rentzsch 视频的链接是一个不错的链接,并且得到了我的投票。

以上是关于可可:核心数据 + NSTableView的主要内容,如果未能解决你的问题,请参考以下文章

可可绑定核心数据中的延迟获取是啥?

核心数据/可可:@distinctUnionOfObjects 不返回可用的 NSArray*

可可 iphone 核心数据谓词一对多 fetchrequest

用核心数据(Mac OS X 可可)对 _ordered_ 项目列表建模的最佳方法是啥?

操作无法完成。 (可可错误 1560。)

在标签可可中显示时间总和