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