如何在NSViewController的子类中处理键盘事件?

时间:2011-11-16 08:32:26

标签: cocoa event-handling nsviewcontroller

我正在创建一个具有向导结构的cocoa应用程序。

所有对话框都是NSViewController的子类。目前我无法获得键盘事件,如keyDown和keyUp ..

请帮我解决这个问题....

提前致谢....

3 个答案:

答案 0 :(得分:4)

覆盖keyDown:和keyUp:方法。

-(void)keyUp:(NSEvent*)event
-(void)keyDown:(NSEvent*)event

- (BOOL)acceptsFirstResponder {
    return YES;
}

NSViewController的子类中 你应该参考Cocoa Event-Handling Guide

答案 1 :(得分:1)

如果您尝试简单地获取转义事件,请改用:

override var acceptsFirstResponder: Bool {
    return true
}

override func cancelOperation(_ sender: Any?) {
    // The user pressed escape
}

答案 2 :(得分:0)

在Interface Builder中将窗口设置为“Auto Recalculate View Loop”对我有用。