我想在一个复杂的基于拆分视图的窗口中为每个不同的子视图有单独的 KeyDown: 处理程序。此外,我希望在 WindowController 级别有一个“全局” KeyDown: 处理程序,用于未由各个子视图处理程序处理的任何键。
根据我对 NSResponder 文档的理解,我应该能够执行以下操作:(在伪代码中 - 请不要抱怨语法。我正在写这个 Forth 但我认为 Objective-C 风格的伪代码会得到这个想法在这里更好。)
但是未处理的键不会像我预期的那样将响应者链向上传播到 WindowController。看起来链条在 ViewController 处停止。
我在这里想念什么?
谢谢
(伪代码)
- (void)keyDown:(NSEvent *)theEvent {
IF{ certain-keys
// subview -- keydown event handling code responds only to certain keys.
[mySubViewController doMysubviewKeyDown:theEvent etc
ELSE
// window controller -- keydown handling code for all other keys.
[super keyDown:theEvent];
}
}