在NSSplitView中处理keyDown:事件的正确设计模式是什么?

时间:2020-05-27 22:52:56

标签: cocoa first-responder nsresponder responder-chain

我想为基于复杂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];
     }

}

0 个答案:

没有答案