문제

In my document based application i implemented the redo and undo behavior with NSUndoManager.

I want to enable or disable the undo / redo NSToolbarItems automatically (as in the default menu), based on the canRedo and canUndo (my NSToolbarItems are not imaged based, so - (BOOL)validateToolbarItem:(NSToolbarItem *)theItem is not called)

1) i tried binding the enable value to self(My WC).document.undoManager.canUndo / self(My WC).document.undoManager.canRedo

does not work, as canUndo and canRedo are not variable based, but just methods

2) i did add two properties to my WC canUndo and canRedo, which i modify on hand of name:NSUndoManagerDidUndoChangeNotification and name:NSUndoManagerDidRedoChangeNotification but they don't get called, when i just add actions to NSUndoManager, so i have to do a first redo or undo action, to get the desired behaviour

도움이 되었습니까?

해결책

the key was also registering for

NSUndoManagerCheckpointNotification "undo manager opens or closes a new undo group"

as this is called when actions are added to the undo manager

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top