在NSUndoManager中重做堆栈

时间:2014-02-28 19:04:09

标签: ios iphone cocoa-touch nsundomanager

我知道NSUndoManager只要注册一个新的撤消操作就会清除重做堆栈。是否有一种优雅的方法可以防止重做堆栈的“n”次撤消操作被清除?我不想禁用撤消操作的注册。我只想防止重做堆栈被清除。

更新:我真的很喜欢NSUndoManager提供的功能。所以我最终使用了两个NSMutableArray用于堆栈,并使用NSInvocation来执行堆栈弹出和推送。我如何向Apple提供反馈?

1 个答案:

答案 0 :(得分:3)

不幸的是,我不知道有什么方法可以阻止重做堆栈被清除。 NSUndoManager的语义不允许这样的东西。如果你想拥有一个更复杂的撤销/重做树,你需要实现自己的或在网上找到一个开源解决方案。