我知道NSUndoManager
只要注册一个新的撤消操作就会清除重做堆栈。是否有一种优雅的方法可以防止重做堆栈的“n”次撤消操作被清除?我不想禁用撤消操作的注册。我只想防止重做堆栈被清除。
更新:我真的很喜欢NSUndoManager
提供的功能。所以我最终使用了两个NSMutableArray
用于堆栈,并使用NSInvocation
来执行堆栈弹出和推送。我如何向Apple提供反馈?
答案 0 :(得分:3)
不幸的是,我不知道有什么方法可以阻止重做堆栈被清除。 NSUndoManager的语义不允许这样的东西。如果你想拥有一个更复杂的撤销/重做树,你需要实现自己的或在网上找到一个开源解决方案。