Я использую NSTextView для разрешения многострочного входа. Однако из-за природы моего приложения, пользователи будут более удобным перемещением в следующий входной элемент, когда они нажмут TAB.
Как я могу заставить ВКЛАДКУ выйти из NSTextView при хранении поведения новой строки клавиши Enter?
Вы можете реализовать -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
Вам нужно будет реализовать это в подклассе.
Я написал такой подкласс для Translate Text . Вы можете использовать его под лицензией BSD . Вот заголовок и файл реализации .
… при сохранении поведения новой строки клавиши Enter?
Моей основной целью было послать действие цели, когда пользователь нажимает Enter, и я также убрал фокус с представления. Однако оба являются явными операторами в коде; вы можете просто закомментировать этот код или удалить его.