用于特殊文本编辑的对象

我需要一个特殊的文本字段,应该做以下的事情: 多 tab键支持 当输入键被按下时发送动作 alt +输入换行 shift +输入换行 我不知道该用什么。 NSTextView看起来不错,但是我无法在输入时设置操作并按Enter键导致换行 NSTextField没有tab键支持,shift-enter不起作用。 有任何想法吗?谢谢!     
已邀请:
最好的办法是将
NSTextView
子类化,以获得所需的功能。这是一个简单的例子:   MyTextView.h
@interface MyTextView : NSTextView
{
    id target;
    SEL action;
}
@property (nonatomic, assign) id target;
@property (nonatomic, assign) SEL action;
@end
  MyTextView.m
@implementation MyTextView

@synthesize target;
@synthesize action;

- (void)keyDown:(NSEvent *)theEvent
{
    if ([theEvent keyCode] == 36) // enter key
    {
        NSUInteger modifiers = [theEvent modifierFlags];
        if ((modifiers & NSShiftKeyMask) || (modifiers & NSAlternateKeyMask))
        {
            // shift or option/alt held: new line
            [super insertNewline:self];
        }
        else
        {
            // straight enter key: perform action
            [target performSelector:action withObject:self];
        }
    }
    else
    {
        // allow NSTextView to handle everything else
        [super keyDown:theEvent];
    }
}

@end
设定目标和行动将按如下方式进行:
[myTextView setTarget:someController];
[mytextView setAction:@selector(omgTheUserPressedEnter:)];
有关密钥代码和
insertNewline:
等全套
NSResponder
消息的更多详细信息,请参阅我关于
NSEvent
密码的问题的优秀答案:我在哪里可以找到与Cocoa的NSEvent类一起使用的密钥代码列表?     

要回复问题请先登录注册