• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
NSCell Subclass Editing Weirdness
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NSCell Subclass Editing Weirdness


  • Subject: NSCell Subclass Editing Weirdness
  • From: Matt Ball <email@hidden>
  • Date: Mon, 27 Jun 2005 20:34:22 -0400

I have a tableView, which I have subclassed in order to draw a gradient selection background. I then have a subclassed NSCell which is very similar to the example "IconAndTextCell" that Apple provides. My tableView's dataSource method queries an NSMutableArray, and then returns values from it. Currently, when I edit my subclassed NSCell, it works as expected for the first edit. From then on, every time I edit a cell, every cell that I have edited up to this point changes its text to reflect the current cell's new title. Does anyone see anything in this code that might be causing this?

In my tableView subclass, I have this, in order to prevent the tableView from selecting the next row when I finish editing.

- (void)textDidEndEditing:(NSNotification *)aNotification
{
//NSTableColumn *secondCol = [[self tableColumns] objectAtIndex:1];
//[self selectRow:([self selectedRow]-1) byExtendingSelection:NO];
//[super textDidEndEditing:aNotification];
if ([[[aNotification userInfo] objectForKey:@"NSTextMovement"] intValue] == NSReturnTextMovement) {
// This is ugly, but just about the only way to do it. NSTableView is determined to select and edit something else, even the text field that it just finished editing, unless we mislead it about what key was pressed to end editing.
NSMutableDictionary *newUserInfo;
NSNotification *newNotification;


newUserInfo = [NSMutableDictionary dictionaryWithDictionary: [aNotification userInfo]];
[newUserInfo setObject:[NSNumber numberWithInt:NSIllegalTextMovement] forKey:@"NSTextMovement"];
newNotification = [NSNotification notificationWithName: [aNotification name] object:[aNotification object] userInfo:newUserInfo];
[super textDidEndEditing:newNotification];


// For some reason we lose firstResponder status when when we do the above.
[[self window] makeFirstResponder:self];
}
}


And in my NSCell subclass, I have this:

- (void)endEditing:(NSText *)textObj
{
NSMutableArray *layersArray = [[NSMutableArray alloc] init];
layersArray = [[[NSDocumentController sharedDocumentController] currentDocument] layersArray];
int row = [[self controlView] selectedRow];
int indexToQueryForTitle = row * 5;


[layersArray replaceObjectAtIndex:indexToQueryForTitle withObject:[textObj string]];
[[self controlView] reloadData];
[super endEditing:textObj];
}


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: NSCell Subclass Editing Weirdness
      • From: Ryan Stevens <email@hidden>
  • Prev by Date: Re: Inserting into NSArrayController
  • Next by Date: Set NSTableColumn's header cell line break mode in IB?
  • Previous by thread: Re: SCNetworkReachability
  • Next by thread: Re: NSCell Subclass Editing Weirdness
  • Index(es):
    • Date
    • Thread