Apple has designed the frameworks available on mac OS around the Model-View-Controller design pattern, and as such has provided various controller objects that are responsible for managing the UI.View controllers are responsible for hooking up the model layer to the view layer, and have an incredibly important role in the architecture of your mac OS app.The following is an example of a debug message that is output to the run log or console: This message indicates that the instance of the Member class is not key-value-coding compliant for the key "named".In this case the error is that the correct Member key is in fact "name"., populated through Cocoa Bindings, wasn’t getting saved. So I tried following the steps to reproduce exactly.I tabbed over to the field, changed the value, tabbed over to the blue “Done” button and hit Space. Click in the field; change the value; click “Done”. I noticed, that when my data model is an array of objects, and not just strings,the data model is updated every time i edit a table Cell View. Next, inside the action method that is triggered when the NSText Field is edited, I commented out all the code. According to the book, a value in the array is assigned to the cell's object Value property.Obviously, this has to do with the fact that when binding to objects, the bindingsucceeds in updating the model, because objects are reference types. Then the NSTextfield retrieves the value from the object Value property.
All of the delegate methods that would easily allow this seem to be for tables that are constructed with cells rather than the views we are using.
We might try removing that by unchecking “Draws Background” or by setting: For this example, that’s enough to get the job done.
In some cases, we found disabling the built-in background color left an ugly hole. However, if you’ve tried everything and can’t fix it, there’s another solution: double-bumping the background color.“Double bump” is a print industry term that refers to printing an area with the same color twice.
This article outlines some of the common issues encountered in applications that use Cocoa bindings and provides clues as to correcting the problem. You must either implement the indexed accessors for the collection key in your model class, or ask the model for a key-value-observing aware collection proxy using one of the following methods: These return collection proxy objects that you can then use with the NSMutable Array or NSMutable Set mutation methods, and the appropriate key-value observing notifications are sent.
You can also modify the contents through the collection controller using the methods described in If changes made to a model value programmatically are not being reflected in the user interface, this typically indicates that the model object is not key-value-observing compliant for the property, or that you are modifying the value in a manner that is bypassing key-value observing.