Re: Making 'return' Begin Editing, like Finder does
Re: Making 'return' Begin Editing, like Finder does
- Subject: Re: Making 'return' Begin Editing, like Finder does
- From: Ricky Sharp <email@hidden>
- Date: Sun, 3 Feb 2008 17:37:21 -0600
On Feb 3, 2008, at 5:30 PM, Jerry Krinock wrote:
I've implemented the following method in my NSTableView subclass
which makes the 'return' key begin editing, like Finder does. It
works, but I don't like that hard-coded keycode 0xd for 'carriage
return'.
Well, you can always use NSCarriageReturnCharacter instead.
Also, Finder handles the Enter key as well to start editing. For
that, use NSEnterCharacter.
Site note: Finder doesn't allow Control-M to also start editing; for
shame :)
Is there a better way to do this? I tried to implement -
insertNewline:, but it never gets invoked.
The insertNewLine APIs basically handle cases where you've already
started editing. I think what you have below is a good approach.
- (void)keyDown:(NSEvent*)event {
NSString *s = [event charactersIgnoringModifiers] ;
unichar keyChar = 0 ;
BOOL didDo = NO ;
if ([s length] == 1) {
keyChar = [s characterAtIndex:0] ;
if (keyChar == 0xd) {
// Unless editing is already in process, which is not the
// case we're trying to handle here, an entire row will
// be selected and therefore [self selectedColumn] will
// be the "no selection" indicator, -1. So, we edit column
// 0. If the user wants a different column, they can
// easily tab to it.
[self editColumn:0
row:[self selectedRow]
withEvent:nil
select:YES] ;
didDo = YES ;
}
}
if (!didDo) {
[super keyDown:event] ;
}
}
___________________________________________________________
Ricky A. Sharp mailto:email@hidden
Instant Interactive(tm) http://www.instantinteractive.com
_______________________________________________
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