我正在写一个非基于NSDocument的应用程序,其样式类似于AddressBook.app。它在MainMenu.nib中有一个窗口。

目前,我正在努力将NSUndoManager与该应用程序集成。如果创建NSUndoManager的实例并将其存储到我的AppController类的实例变量中,则在向管理器注册撤消操作时不会启用“撤消”菜单项。

为了将NSUndoManager实例连接到菜单项并管理窗口的脏状态,我该怎么办?

最佳答案

您可以在AppDelegate类中创建撤消管理器作为该类的成员,然后在接口构建器中将AppDelegate设置为窗口的委托。之后,在AppDelegate中编写以下方法:

- (NSUndoManager*) windowWillReturnUndoManager: (NSWindow*) window
{
    < return the undo manager created >
}

关于macos - 非基于文档的应用程序中的NSUndoManager,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11181573/

10-09 12:56