Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sorting an NSTableView




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:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden
References: 
 >sorting an NSTableView (From: "James W. Walker" <email@hidden>)
 >Re: sorting an NSTableView (From: "Vijay Malhan" <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.