How can I make the Tab key move focus out of a NSTextView?

后端 未结 2 1862
野的像风
野的像风 2020-12-29 08:25

I\'m using an NSTextView to allow multi-line input. However, due to the nature of my app, users will be more comfortable moving to the next input element when they press TAB

相关标签:
2条回答
  • 2020-12-29 08:45

    You could implement -textView:doCommandBySelector: in your text view's delegate:

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

    See http://developer.apple.com/documentation/Cocoa/Reference/NSTextViewDelegate_Protocol

    0 讨论(0)
  • 2020-12-29 08:56

    You'll need to implement this in a subclass.

    I wrote such a subclass for Translate Text. You're welcome to use it under its BSD license. Here's the header and the implementation file.

    … while keeping the newline behaviour of the Enter key?

    My main purpose was to send an action to a target when the user presses Enter, and I also have it drop focus from the view. However, both are explicit statements in the code; you can simply comment that code out or delete it.

    0 讨论(0)
提交回复
热议问题