Forked from BlairDuncan/CPTableHeaderView_mousedown
Created
January 20, 2010 22:29
-
-
Save jerodsanto/282359 to your computer and use it in GitHub Desktop.
sortable CPTableView
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
upArrow = [[CPImage alloc] initWithContentsOfFile:@"Resources/upArrow.png" size:CGSizeMake(8.0, 7.0)]; | |
downArrow = [[CPImage alloc] initWithContentsOfFile:@"Resources/downArrow.png" size:CGSizeMake(8.0, 7.0)]; | |
@implementation CPTableHeaderView (myAdditions) | |
- (void)mouseDown:(CPEvent)anEvent | |
{ | |
var selectedColumnNumber = [self columnAtPoint:[self convertPoint:[anEvent locationInWindow] fromView:nil]]; | |
if(selectedColumnNumber == CPNotFound) return; | |
var column = [[_tableView tableColumns] objectAtIndex:selectedColumnNumber]; | |
var headerContentView = Nil; | |
// hide arrow in all columns | |
for (var i in [_tableView tableColumns]) | |
{ | |
if([_tableView tableColumns][i].isa.name == @"CPArray") continue; | |
else | |
{ | |
column = [[_tableView tableColumns] objectAtIndex:i]; | |
headerContentView = [column headerView]._ephemeralSubviewsForNames["content-view"]; | |
[headerContentView setImagePosition:CPNoImage]; | |
} | |
} | |
// display arrow in selected column | |
column = [[_tableView tableColumns] objectAtIndex:selectedColumnNumber]; | |
headerContentView = [column headerView]._ephemeralSubviewsForNames["content-view"]; | |
if([headerContentView image]) | |
{ | |
if([headerContentView image] == downArrow) [headerContentView setImage:upArrow]; | |
else [headerContentView setImage:downArrow]; | |
} | |
else [headerContentView setImage:downArrow]; | |
[headerContentView setImagePosition:CPImageLeft]; | |
//sort the dataSource and reload | |
// - (void) sortDataInColumnIdentifiedBy:(CPString)anIdentifier descending:(BOOL)isDescending | |
[[_tableView dataSource] sortDataInColumnIdentifiedBy:[column identifier] descending:([headerContentView image] == downArrow)]; | |
[[_tableView selectedRowIndexes] removeAllIndexes]; | |
[_tableView reloadData]; | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I forked this gist awhile back before CPTableview had built-in support for sorting. I wouldn't suggest using it anymore.