我正在使用NSTextView来允许多行输入。但是,由于我的应用程序的性质,用户在按TAB时可以更轻松地移动到下一个输入元素。
如何让TAB退出NSTextView,同时保持Enter键的换行符?
答案 0 :(得分:19)
您可以在文字视图的委托中实施-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
答案 1 :(得分:4)
您需要在子类中实现它。
我为Translate Text编写了这样一个子类。欢迎您在its BSD license下使用它。这是the header和the implementation file。
...同时保持Enter键的换行符?
我的主要目的是在用户按下Enter键时向目标发送一个动作,我也让它从视图中删除焦点。但是,两者都是代码中的显式语句;您可以简单地注释掉该代码或将其删除。