15

我正在使用 NSTextView 来允许多行输入。但是,由于我的应用程序的性质,用户在按下 TAB 时会更舒服地移动到下一个输入元素。

如何让 TAB 退出 NSTextView,同时保持 Enter 键的换行行为?

4

2 回答 2

21

您可以-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

于 2010-03-21T04:52:33.827 回答
4

您需要在子类中实现它。

我为Translate Text写了这样一个子类。欢迎您在其 BSD 许可下使用它。这是头文件实现文件

…同时保持 Enter 键的换行行为?

我的主要目的是在用户按下 Enter 时向目标发送一个动作,并且我还让它从视图中删除焦点。但是,两者都是代码中的显式语句;您可以简单地注释掉该代码或删除它。

于 2010-03-20T21:44:21.593 回答