NSUndoManager в недокументированном приложении

Я пишу приложение, не основанное на NSDocument, похожее по стилю, скажем, на AddressBook.app. Он имеет одно окно, расположенное в MainMenu.nib.

В настоящее время я пытаюсь интегрировать NSUndoManager с этим приложением. Если я создам экземпляр NSUndoManager и сохраню его в переменной экземпляра моего класса AppController, пункт меню «Отменить» не будет включен при регистрации отмен в диспетчере.

Что мне нужно сделать, чтобы подключить экземпляр NSUndoManager к пунктам меню и управлять грязным состоянием окна?


person tajmahal    schedule 24.06.2012    source источник


Ответы (1)


Вы можете создать в своем классе AppDelegate свой диспетчер отмены как член класса. Затем вы устанавливаете AppDelegate в качестве делегата окна в построителе интерфейса. После этого вы пишете этот метод в AppDelegate:

- (NSUndoManager*) windowWillReturnUndoManager: (NSWindow*) window
{
    < return the undo manager created >
}
person Ramy Al Zuhouri    schedule 01.07.2012