如何使用目标c检测击键?

时间:2010-06-29 15:59:23

标签: objective-c cocoa xcode

只是想知道,我如何检测不同的击键,然后检测我按下了哪个键,我尝试使用它, -(void)keyDown:(NSEvent *)event 但似乎没有得到任何结果。我也有搜索但没找到任何东西。我猜我可能要在界面构建器中设置一些东西来检测击键? 我还认为它与所选内容有关,如果它是文本字段的话。

2 个答案:

答案 0 :(得分:1)

keyDown:方法仅针对特定视图调用,而我认为是子视图。如果您需要为应用程序完成所有击键 - 请检查NSEvent类方法:

+ (id)addLocalMonitorForEventsMatchingMask:(NSEventMask)mask 
                                   handler:(NSEvent* (^)(NSEvent*))block

继续阅读Xcode文档。我认为你是雪豹。

答案 1 :(得分:0)

  

我尝试使用这个, - (void)keyDown:(NSEvent *)事件,但似乎没有得到任何结果。

你是什么意思“使用”它?

您需要一个对象来回复该消息。这意味着你需要它成为一个响应者,并且只要它适合于它所处理的键盘按下就处于响应者链中。

根据按键的功能,单个自定义视图处理它可能是合适的;如果没有,它应该是处理它的窗口控制器。在适当的时候,任何一个人都应该已经在响应者链中。无论你采用哪种方式,你都需要子类化NSView(用于自定义视图)或NSWindowController。