Skip navigation.
 
mlRe: Making 'return' Begin Editing, like Finder does
FROM : Ricky Sharp
DATE : Mon Feb 04 00:37:21 2008

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_removed>
Instant Interactive(tm)  http://www.instantinteractive.com

Related mailsAuthorDate
mlMaking 'return' Begin Editing, like Finder does Jerry Krinock Feb 4, 00:30
mlRe: Making 'return' Begin Editing, like Finder does Ricky Sharp Feb 4, 00:37
mlRe: Making 'return' Begin Editing, like Finder does Jerry Krinock Feb 4, 19:33