- 有没有办法从撤消管理器中删除特定的堆栈值
或
- 要
pause/disable
并再次start/enable
撤消管理器的任何函数。
我不想将特定数据推送到UndoManager's stack
.
不可能简单地不将增量推送到堆栈,因为在这种情况下,无法撤消以前的增量,您还需要围绕跳过的增量转换增量。假设您有一个文档"xyz"
,{insert, 2, "a"}
应用于该文档以获取"xyaz"
,然后{insert, 1, "b"}
以获取"xbyaz"
。现在要撤消第一次编辑但保留第二次编辑,您需要应用 {delete, 2+1, "a"}
.执行此操作的算法不是很复杂,但它需要处理许多分支,因此可能会变得毛茸茸的。Ace 没有为此 ATM 提供 API。