【问题标题】:Handling keyboard events on cocoa在可可上处理键盘事件
【发布时间】:2012-05-20 20:22:22
【问题描述】:

我有一个文本框,每次都在其中输入内容。我想捕获按下的键并执行一些操作。为此,我需要捕获键盘事件。目前我正在尝试覆盖keyDown: 函数,但它不起作用。

那我该怎么做呢?

【问题讨论】:

  • 描述“行不通”总是有帮助的。崩溃?什么都没发生?按键出现在框中,但没有 keyDown 消息?代码也很有帮助。这是 NSTextField 还是 NSTextView?你真的需要事件本身,还是只需要角色?

标签: objective-c cocoa


【解决方案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
}

【讨论】:

    【解决方案2】:

    你可以使用

    - (void)controlTextDidChange:(NSNotification *)aNotification
    

    如果您需要验证 textField 中的数据,这将使用 full ....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 2011-03-08
      • 1970-01-01
      相关资源
      最近更新 更多