NSUndoManager在非基于文档的应用程序中

时间:2012-06-24 22:03:47

标签: macos cocoa nsundomanager

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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