我有一个NSOutlineView
实现copy:
,paste:
等的子类cut:
。此外,NSDocument
子类实现了这些相同的方法。
当大纲视图在响应者链中时(是第一响应者或它的父视图),所有的复制/粘贴事件都NSOutlineView
被子类拦截。我想要的是根据上下文捕获其中一些消息,或者让它们传播并NSDocument
被子类捕获。
我想要的基本上是:
- (void)copy:(id)sender
{
// If copy paste is enabled
if ([self isCopyPasteEnabled]) {
[[NSPasteboard generalPasteboard] clearContents];
[[NSPasteboard generalPasteboard] writeObjects:self.selectedItems];
return;
}
// If copy paste is disabled
// ... forward copy: message to the next responder,
// up to the NSDocument or whatever
}
我已经尝试了很多技巧,没有一个成功:
[[self nextResponder] copy:sender]
这不起作用,因为下一个响应者可能无法实现copy:
[super copy:sender]
同样在这里,超级没有实现copy:
[NSApp sendAction:anAction to:nil from:sender]
很高兴向第一响应者发送操作。如果在动作中使用
当然,我可以在响应者链上手动循环,直到找到响应copy:
甚至直接调用copy:
当前文档的内容,但我正在寻找正确的方法。
提前谢谢了!