如何使Tab键将焦点移出NSTextView?

Ste*_*eod 15 cocoa objective-c nstextview

我正在使用NSTextView来允许多行输入.但是,由于我的应用程序的性质,当用户按TAB时,用户将更容易移动到下一个输入元素.

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

Wev*_*vah 19

您可以-textView:doCommandBySelector:在文本视图的委托中实现:

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

    return NO;
}
Run Code Online (Sandbox Code Playgroud)

请参阅http://developer.apple.com/documentation/Cocoa/Reference/NSTextViewDelegate_Protocol

  • 非常好的方法.你也可以检查`insertBacktab:`并以类似的方式调用`selectPreviousKeyView:`. (6认同)

Pet*_*sey 4

您需要在子类中实现它。

\n\n

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

\n\n
\n

\xe2\x80\xa6 同时保持 Enter 键的换行行为?

\n
\n\n

我的主要目的是当用户按 Enter 时向目标发送操作,并且我还让它从视图中删除焦点。然而,两者都是代码中的显式声明;您可以简单地注释掉该代码或将其删除。

\n