【问题标题】:detecting keyboard events in cocoa, specifically the Return/Tab keys检测可可中的键盘事件,特别是 Return/Tab 键
【发布时间】:2011-08-18 21:52:46
【问题描述】:

我在搞乱 Cocoa 文本系统,现在,我需要做的就是检测用户何时按下 Tab 或 Return 键。

不确定这是否会有所不同,但我以编程方式从头开始构建了一个文本编辑器,因此我只有对 NSTextStorage 对象的引用,因为其他所有内容都已发布。

任何帮助将不胜感激。 对于 noobile 的问题,我深表歉意。

【问题讨论】:

  • 如果您从头开始构建文本编辑器,您是如何处理所有其他键盘输入的?
  • 如果您不能自己回答这个问题,我会严重质疑从头开始创建文本编辑器的智慧。 NSTextView 和相关类提供了一个非常密集、复杂和功能齐全的文本处理系统,该系统由专家多年来构建。如果您从头开始,则非常非常不可能改进它。为了您的用户,使用NSTextView 及其相关类来做您想做的事。如果您有理由认为它不起作用,请询问,这里的人将能够提供帮助。
  • 我有 8 个 NSTextContainers 和相应的 NSTextViews。这是我不只使用 IB 的 NSTextView 的唯一原因。

标签: objective-c cocoa


【解决方案1】:
- (void)keyDown: (NSEvent *) event {

   if ([event keyCode] == 13){ //For return key

   }
   if ([event keyCode] == 9){ //For tab key

   }

}

此方法将被覆盖,并在每次按下键时调用。

【讨论】:

  • keyCodes 非常有用,谢谢。尽管我似乎无法使该方法起作用。我需要对将文本附加到 nstextstorage 对象做任何事情吗?还是别的什么?我现在很迷茫。
  • 是的,应该更仔细地阅读你的问题:你需要一个合适的类尝试子类化NSWindowNSWindowController.stackoverflow.com/questions/1143843/keydown-and-cocoa-sample
猜你喜欢
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 2017-04-06
  • 1970-01-01
相关资源
最近更新 更多