«Tab» между элементами управления без клавиши Tab - PullRequest
0 голосов
/ 03 августа 2010

У меня есть окно, которое счастливо перемещается между его элементами управления, используя клавиши tab и shift-tab.Однако я также хочу иметь возможность перемещаться между элементами управления с помощью клавиш со стрелками вверх и вниз (в данном случае).Как этого достичь?

Ответы [ 2 ]

2 голосов
/ 04 августа 2010

Скажите окну, чтобы следующий / предыдущий ключ текущего вида был первым респондентом.

1 голос
/ 04 августа 2010

Для нетекстовых элементов управления вы должны иметь возможность обходиться чем-то вроде этого где-то в цепочке респондента (например, ваш NSWindowController):

- (void)keyDown:(NSEvent *)event {
    NSWindow *window = [self window];

    switch ([[event characters] objectAtIndex:0]) {
        case NSUpArrowFunctionKey:
            [window makeFirstResponder:[[window firstResponder] previousValidKeyView]];
            break;
        case NSDownArrowFunctionKey:
            [window makeFirstResponder:[[window firstResponder] nextValidKeyView]];
             break;
       default:
            [super keyDown:event];
            break;
    }
}

А в текстовом поле делегаты:

- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)command {
    NSWindow *window = [control window];

    if (command == @selector(moveUp:)) {
        [window makeFirstResponder:[[window firstResponder] previousValidKeyView]];
        return YES;
    } else if (command == @selector(moveDown:)) {
        [window makeFirstResponder:[[window firstResponder] nextValidKeyView]];
        return YES;
    }

    return NO;        
}

(Есть аналогичный метод для делегатов текстового представления.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...