核心数据绑定与子视图和多个NIB

时间:2009-09-07 04:10:41

标签: objective-c cocoa core-data binding nstextview

我有一个基于文档的Core Data应用程序。我的主要Core Data实体有几个字符串字段,其中大部分绑定到NSTextFields,但是一个绑定到NSTextView。

我正在使用该技术进行视图切换(使用多个视图控制器),如Hillegass一书中所述。我的所有子视图都是由ManagedViewController控制的,我的子类NSViewController有一个managedObjectContext字段。

我的子视图存在于单独的nib文件中。由于某种原因,我在该nib中设置的绑定不起作用 - 但如果我在主nib文件中以完全相同的方式设置窗口小部件和绑定,它们可以正常工作。

见图:

Screenshot http://img180.imageshack.us/img180/3391/screenshot.gif

在主nib文件中,我有一个树控制器,其managedObjectContext绑定到File的所有者的mOC(文件的所有者是MyDocument)。 NSTextField的值(是的,值 - 它不是富文本)绑定到treeController.selection.content(其中content是实体的字符串属性。)没问题。这很好用。

在第二个nib文件中,我有另一个树控制器,其managedObjectContext绑定到File的所有者的mOC(文件的所有者是我的ManagedViewController)。 NSTextField的值与上面的绑定方式相同。

在我的代码中,我测试过以确保两个managedObjectContexts引用同一个对象。他们这样做,而且不是零。

我没有收到错误 - 只是这些值永远不会与子视图中的NSTextViews绑定。他们总是零。

另外,我尝试过NSTextFields - 同样的问题。

关于如何制作核心数据绑定的任何想法都可以很好地与子视图和多个NIB一起使用?

1 个答案:

答案 0 :(得分:2)

你有两个树形控制器。每个人都有自己的选择知识。尝试将两个树控制器中的selectionIndexPaths绑定到文档的属性(您需要提供一种通过视图控制器实现的方法)。