【发布时间】:2017-03-16 14:30:34
【问题描述】:
这是一个 macOS 应用程序,使用核心数据,没有文档,也没有故事板。我正在尝试使用 NSArrayControllers 和绑定来显示我的数据。
数据模型2个实体: 书籍(具有作者、标题、简介等属性)和 章节(具有标题等属性)
这两个实体以一对多的关系连接:
Book.chapters > Chapter.book.
该应用可以有多本书,它显示在一个 tableView 中。很简单。我在 XCode 中设置了一个名为“Books Array Controller”的数组控制器。我将其实体设置为“书”并检查“准备内容”。
这是一个主细节,其中细节的属性之一是一个数组,将显示在它自己的表中。这就是给我带来问题的原因。
我将 Books Array Controller 绑定如下:
1、managedObjectContext绑定到Delegate的self.managedObjectContext。
2. bookListTableView 的 Table Content > 内容绑定到“Books Array Controller”控制器键=排列对象。
3. 然后对于表格中的每一列,我选择 textViewCell 并将其值绑定到“表格单元格视图”模型键路径 = objectValue.title、objectValue.author 等。
4.我有一个textView,通过将Attributed String绑定到“Books Array Controller”控制器键=选择,模型键路径=blurb来选择书籍的“blurb”(属性字符串)。
所有这些都很好。
但是我在试图弄清楚如何在另一个表中显示章节列表时遇到了很多问题。我尝试创建另一个名为“Chapters Controller”的数组控制器。我将其实体设置为“章节”并检查“准备内容”。
我绑定章节控制器如下:
1、managedObjectContext绑定到Delegate的self.managedObjectContext。 (就像另一个)
2.Controller Content>内容集绑定“Books Array Controller”控制器key=selection,model key path=champions.
3.我将表格的内容绑定到“章节控制器”控制器键=选择,模型键路径=章节。
4.然后对于表格中的每一列,我选择textViewCell并将其值绑定到“表格单元格视图”模型key path = objectValue.title等
第二张表中没有任何显示,即章节列表。甚至没有一堆“表格视图单元”的东西。它是空的。我已经尝试了很多我不会让你厌烦的变化。显然我缺少一些东西。有什么帮助吗?
应用程序正确地制作了它的 Book 对象,并且 Books 似乎正确地制作了它们的 Chapter 对象。
——
更新:我已尝试听从 Willeke 的建议,但仍然做得不对。
这里是绑定...
【问题讨论】:
-
将 table view 的 selectionIndexes 绑定到数组控制器上。
-
我会摆弄它,但是有 2 个表视图和 2 个数组控制器。您是否建议我绑定第一本书列表 tableView selectionIndexes?到... ?我尝试将类似书本的 tableview 的 selectionIndexes 绑定到 BookArrayController 的 selectionIndexes (并且还为它安排了对象),但没有奏效。
标签: macos core-data cocoa-bindings nsarraycontroller