可可:核心数据 + 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