Как я могу заставить клавишу Tab переместить фокус из NSTextView?

Я использую NSTextView для разрешения многострочного входа. Однако из-за природы моего приложения, пользователи будут более удобным перемещением в следующий входной элемент, когда они нажмут TAB.

Как я могу заставить ВКЛАДКУ выйти из NSTextView при хранении поведения новой строки клавиши Enter?

15
задан Steve McLeod 20 March 2010 в 17:47
поделиться

2 ответа

Вы можете реализовать -textView: doCommandBySelector: в делегате текстового представления:

- (BOOL)textView:(NSTextView *)aTextView doCommandBySelector:(SEL)aSelector {
    if (aSelector == @selector(insertTab:)) {
        [[aTextView window] selectNextKeyView:nil];
        return YES;
    }

    return NO;
}

См. http: // developer .apple.com / documentation / Cocoa / Reference / NSTextViewDelegate_Protocol

19
ответ дан 1 December 2019 в 03:14
поделиться

Вам нужно будет реализовать это в подклассе.

Я написал такой подкласс для Translate Text . Вы можете использовать его под лицензией BSD . Вот заголовок и файл реализации .

… при сохранении поведения новой строки клавиши Enter?

Моей основной целью было послать действие цели, когда пользователь нажимает Enter, и я также убрал фокус с представления. Однако оба являются явными операторами в коде; вы можете просто закомментировать этот код или удалить его.

4
ответ дан 1 December 2019 в 03:14
поделиться