On 19/07/2010, at 9:32 AM, Robb wrote:

> I'm trying to setup a table view with multiple columns, but I can't figure 
> out how to identify any particular column.
> what does [tablecolumn identifier] actually return so i can compare it?  I 
> assumed a string, but that didn't work.  So my questions is, what do I do 
> with the NSTableColumn thats being passed to me?  


Apart from the error that Quincey pointed out, matching table column 
identifiers to a property of your data model doesn't require a bunch of 
if..else..if..else statements. Use KVC, viz:

- (id) tableView:(NSTableView *) tv objectValueForTableColumn:(NSTableColumn *) 
tc row:(NSInteger) index
{
        id indexedObject = [[self arrayOfDataObjects] objectAtIndex:index];

        return [indexedObject valueForKey:[tc indentifier]];
}


You sometimes need to do some extra work for a particular table column, but by 
and large the above is nearly always all you need. Sometimes I think someone 
has actually designed this stuff to make life easy ;-)

Looking at your code, you appear to have three separate arrays of the same 
dimension holding individual properties. Instead, I would combine them into a 
single array holding objects with three separate properties. Create a custom 
NSObject subclass if needed. This will be far, far easier than trying to keep 
three arrays in step, which is not a professional design.

--Graham_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to