我正在使用 NSTextView 来允许多行输入。但是,由于我的应用程序的性质,用户在按下 TAB 时会更舒服地移动到下一个输入元素。
如何让 TAB 退出 NSTextView,同时保持 Enter 键的换行行为?
我正在使用 NSTextView 来允许多行输入。但是,由于我的应用程序的性质,用户在按下 TAB 时会更舒服地移动到下一个输入元素。
如何让 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 时向目标发送一个动作,并且我还让它从视图中删除焦点。但是,两者都是代码中的显式语句;您可以简单地注释掉该代码或删除它。