在我的基于文档的应用程序中,我使用 NSUndoManager
实现了重做和撤消行为.
我想启用或禁用撤消/重做 NSToolbarItems
自动(如在默认菜单中),基于canRedo
和canUndo
(我的 NSToolbarItems
不是基于图像的,因此 - (BOOL)validateToolbarItem:(NSToolbarItem *)theItem
不会被调用)
1) 我尝试将启用值绑定(bind)到 self(My WC).document.undoManager.canUndo / self(My WC).document.undoManager.canRedo
不起作用,因为 canUndo 和 canRedo 不是基于变量的,而只是方法
2) 我确实向我的 WC canUndo 和 canRedo 添加了两个属性,我在 name:NSUndoManagerDidUndoChangeNotification
上修改了它们。和name:NSUndoManagerDidRedoChangeNotification
但当我只是向 NSUndoManager 添加操作时,它们不会被调用,因此我必须执行第一个重做或撤消操作,以获得所需的行为
最佳答案
key 还注册了
NSUndoManagerCheckpointNotification
“撤消管理器打开或关闭新的撤消组”
因为当操作添加到撤消管理器时会调用此函数
关于cocoa - NSToolbar 重做和撤消自动 - 启用 NSToolbarItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19716325/