在我的基于文档的应用程序中,我调用prepareWithInvocationTarget和registerUndoWithTarget for [self undoManager]。但是,在"编辑"菜单中,单击"撤销"重做仍然是空白。我可以通过调用[[self undoManager] undo]手动执行撤销,它可以工作。
只是为了确保,我创建了一个新项目,在其中调用prepareWithInvocationTarget和registerUndoWithTarget。魔法!现在可以点击编辑菜单中的撤销/重做元素。
这可能是什么原因?我尝试检查接口构建器中的连接,但它们与我创建的新项目相同。知道怎么修吗?
好的,我已经想好了。
问题是我有一个基于文档的项目,在我的文档委托中我调用了[self undmanager]。我应该在主窗口调用它。我把它改成[mprojectwwindow unomanager](因为mprojectwwindow指向文档的主窗口),现在一切都很好。