我想为基于复杂splitview的Window中的各个子视图分别设置KeyDown:处理程序。另外,我想在WindowController级别上有一个“全局” KeyDown:处理程序,用于处理未由各个子视图处理程序处理的所有键。
根据我对NSResponder文档的理解,我应该能够执行以下操作:(使用伪代码-请不要抱怨语法。我敏锐地编写了Forth,但我认为目标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];
}
}