有没有更好的方法从子视图访问文档?



我有一些类位于我的文档,如NSNotificationCenter和NSUndoManager,我需要从我的子视图访问。

现在我可以这样访问它们:

NSUndoManager *undoManager = [[[[[self view] window] windowController] document] undoManager];

有我不知道的更好的方法吗?谢谢。

为什么视图需要担心撤销管理器?似乎有些重构可能是有序的。

通常,视图可能会触发第一个响应器中的某些操作。然后,该操作向上传递到响应器链,直到它找到响应该操作的对象,例如窗口控制器或文档。一个'undo'事件通常会影响数据模型,所以文档会处理类似的事情。当用户撤消先前的操作时,模型将恢复到先前的状态,并且视图层次结构反映更改。

在您的情况下,是否有可能将处理撤消管理器的责任移到文档中?

这同样适用于通知中心。如果文档有通知中心,为什么视图要尝试使用它?您能否像上面描述的那样利用响应器链来向文档获取消息?如果更合适的话,+defaultNotificationCenter也有一个默认的通知中心。

相关内容

  • 没有找到相关文章

最新更新