2011-07-22 76 views
0

我有一个文本框,每次输入内容。我想捕获按下的键并执行一些操作。为此,我需要捕获键盘事件。目前我正试图覆盖keyDown:函数,但它不会工作。在可可上处理键盘事件

那么我该怎么做呢?

+2

它总是有助于表征“不会工作”。崩溃?什么都没发生?密钥出现在框中,但没有keyDown消息?代码也是有帮助的。这是NSTextField还是NSTextView?你真的需要事件本身,还是只需要角色? – Caleb

回答

1

请勿重写keyDown。当文本控制文本发生变化时注册通知。下面将针对工作的NSTextField:

// Listen for change events on fields 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(valueChanged:) 
              name:@"NSControlTextDidChangeNotication" 
              object:textField ]; 

...

(void) valueChanged:(NSNotification*)notification { 
    // TODO -- look at the stringValue of your TextField 
} 
0

您可以使用

- (void)controlTextDidChange:(NSNotification *)aNotification 

这将是充分利用,如果你需要验证您的文本字段中的数据...