Re: Request for help in getting table View to reflect fetch results
Re: Request for help in getting table View to reflect fetch results
- Subject: Re: Request for help in getting table View to reflect fetch results
- From: Chris Hanson <email@hidden>
- Date: Sat, 14 Jul 2007 22:57:14 -0700
On Jul 14, 2007, at 6:46 PM, Ernest Schaal wrote:
The next lesson is about the methods used to fetched and display
events that are due within a given period of time. Thanks to help from
this group I was able to do the fetch that retrieves items due within
that period that have not been completed, but I haven't figured out
how to apply that fetch to a table view.
The key is to invert how you're thinking about the problem. From the
sound of it, you seem to be approaching it as "how do I put data in a
table view?" But Cocoa doesn't generally work that way; it follows a
Model-View-Controller architecture, where interaction between view and
model objects is mediated by some sort of controller. So the question
should really be "How can I connect my table view through some sort of
controller to my model objects?"
There are a couple of ways you can do this, both fairly
straightforward. You can bind the NSValueBinding of each of your
table columns through an NSArrayController to the appropriate model
objects, by binding the array controller's NSContentArrayBinding to a
collection of model objects.
Or you can implement your own controller that conforms to the
NSTableDataSource informal protocol, point it at a collection of model
objects, and make it your table view's dataSource.
The latter is a very good exercise for any new Cocoa developer to go
through -- especially to create a completely generic table data source
object by following the standard "-[NSTableColumn identifier] is the
key path to use" pattern. It leads you very naturally to a bindings-
like design, completely demystifying the use of Cocoa bindings
themselves.
-- Chris
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden