Re: sorting an NSTableView
Re: sorting an NSTableView
- Subject: Re: sorting an NSTableView
- From: "James W. Walker" <email@hidden>
- Date: Sat, 31 May 2008 17:23:07 -0700
On May 30, 2008, at 5:04 AM, Vijay Malhan wrote:
An Example:
mTable = member instance for your TableView
mData = member array which provides the data-objects.
Put the following code at a place where your table and data-source
array is initialized. Like in awakeFromNib: method.
Here I'm sorting on key "name", Change it to whatever key you have
in your data-object on which you want to do the sorting. You can do
the same thing from IB as well, then you don't have to write the
following code.
[mTable setSortDescriptors:[NSArray arrayWithObject:
[[[NSSortDescriptor alloc]initWithKey:@"name" ascending:YES
selector:@selector(caseInsensitiveCompare:) ]autorelease]]];
[mData sortUsingDescriptors:[mTable sortDescriptors]];
Now implement the following delegate for NSTableView:
- (void)tableView: (NSTableView *)aTableView
sortDescriptorsDidChange: (NSArray *)oldDescriptors
{
[mData sortUsingDescriptors: [aTableView sortDescriptors]];
[mTable reloadData];
}
Thanks!
I missed that delegate method, since it's not listed with NSTableView,
but with NSTableDataSource. Somehow it works, though it's a little
hard to wrap my head around. The sort key is used to extract a string
from members of the data array, and the selector is used to compare
the strings, right? And if I hadn't represented my table data as an
NSMutableArray containing NSDictionary objects, I'd have more work to
do.
On Fri, May 30, 2008 at 12:18 PM, James W. Walker <email@hidden>
wrote:
Hi. I'm a Cocoa newbie, and I'm trying to figure out how to enable
sorting columns of my table, but the NSTableView guide doesn't say
anything about it. I see that NSTableView has a setSortDescriptors
method, NSTableColumn has a setSortDescriptorPrototype method, and
that IB shows a "sort key" attribute for a table column, but I'm not
clear on how to use them. Any hints or examples?
_______________________________________________
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