问题
I have a document-based Core Data app. My main Core Data entity has several string fields, most of which are bound to NSTextFields, but one is bound to an NSTextView.
I am using the technique for view switching (with multiple view controllers) as explained in the Hillegass book. All of my subviews are controlled by a ManagedViewController, my subclass of NSViewController that has a managedObjectContext field.
My subview exists in a separate nib file. For some reason, the bindings I have set up in that nib are not working--but if I set up the widgets and the bindings in the exact same way in the main nib file instead, they work fine.
See image:
Screenshot http://img180.imageshack.us/img180/3391/screenshot.gif
In the main nib file, I have a tree controller whose managedObjectContext is bound to File's Owner's mOC (File's Owner is MyDocument). The NSTextField's value (yes, value--it's not rich text) is bound to treeController.selection.content (where content is a string property of the entity.) No problem. This works fine.
In the second nib file, I have another tree controller whose managedObjectContext is bound to File's Owner's mOC (File's Owner is my ManagedViewController). The NSTextField's value is bound the same way as above.
In my code, I have tested to make sure that the two managedObjectContexts refer to the same object. They do, and it's not nil.
I don't get an error--it's just that the values never bind with NSTextViews in the subview. They're always nil.
Also, I have tried NSTextFields--same problem.
Any ideas on how to make Core Data bindings play nicely with subviews and multiple NIBs?
回答1:
You have two tree controllers. Each has its own knowledge of the selection. Try binding selectionIndexPaths
from both of the tree controllers to a property of your document (you'll need to provide a way to get there through the view controller).
来源:https://stackoverflow.com/questions/1387518/core-data-bindings-with-subviews-and-multiple-nibs