我有一个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:
,但我正在寻找正确的方法这样做。
非常感谢提前!