检测NSTextView中的Enter / Tab / Up / Down键?

时间:2012-12-08 09:14:46

标签: objective-c macos cocoa nstextview

可可诺布在这里。我想知道如何在用户输入NSTextView时捕获KeyDown上的Entertab键?

谢谢!

2 个答案:

答案 0 :(得分:3)

最简单的方法是实施- (BOOL)textView:(NSTextView *)aTextView doCommandBySelector:(SEL)aSelector委托方法,并查找insertNewline:insertTab:选择器。

- (BOOL)textView:(NSTextView *)aTextView doCommandBySelector:(SEL)aSelector
{
    if (aSelector == @selector(insertNewline:)) {
        // Handle the Enter key
        return YES;
    } else if (aSelector == @selector(insertTab:)) {
        // Handle the Tab key
        return YES;
    }

    return NO;

}

答案 1 :(得分:2)

您应该处理NSTextView的keyDown:(NSEvent*)theEvent消息(即编写您自己的后代)。 在这种情况下,您将拥有[theEvent keyCode]中的密钥代码。

对于返回,有一个常量kVK_Return,用于标签 - kVK_Tab等。

您应该添加Carbon框架(和#import Carbon/Carbon.h)来访问这些常量。