Coloring a Row in a NSTableView.
Joshua Garnham <joshua.garnham-/[email protected]>
| Newsgroups | gmane.comp.macosx.devel |
|---|---|
| Message-ID | <[email protected]> |
What I am looking to do is set the background color of the selected row in an NSTableView when a I button is clicked.
I've seen other cases where people have used tableView:willDisplayCell:forTableColumn:row: and setBackgroundColor: but I don't think that will work in my situation where I want it to happen when a button is clicked.
I know that I can find the selected row with NSTableView's selectedRow method and set the Background color for a cell with setBackgroundColor:.
Here's what I have tried :
- (void)tableView:(NSTableView *)aTableView
willDisplayCell:(id)aCell
forTableColumn:(NSTableColumn *)aTableColumn
row:(NSInteger)rowIndex {
NSLog(@"Coloring Method Begun");
int selectedRow = [outlineView selectedRow];
if (selectedRow == nil) {
}else {
if (clicked == YES) {
[aCell setBackgroundColor:[NSColor lightGrayColor]];
clicked = NO;
NSLog(@"Coloring Method Ended");
}else {
}
}
}
- (IBAction)colorize:(id)sender{
NSLog(@"Click Method Begun");
clicked = YES;
NSIndexSet *selectedRowSet = [outlineView selectedRowIndexes];
NSIndexSet *selectedColumnSet = [outlineView selectedColumnIndexes];
[outlineView reloadDataForRowIndexes:selectedRowSet columnIndexes:selectedColumnSet];
NSLog(@"Click Method Ended");
}
But it seems that the delegate method is never triggered.