【发布时间】:2012-12-04 13:55:58
【问题描述】:
假设我有两个原子对象方法operation1 和operation2,它们将自己的撤消操作注册到undoManager。如果我批量创建operation3,它会调用前两个操作并将撤消回调与beginUndoGrouping/endUndoGrouping 组合在一起,撤消时,NSUndoManager 不会对重做操作进行组合。如何让NSUndoManager将撤消组映射到重做组?
示例代码:
- (void)operation3
{
[undoManager beginUndoGrouping];
[self operation1]; // [undoManager setActionName:@"op1"];
[self operation2]; // [undoManager setActionName:@"op2"];
[undoManager endUndoGrouping];
[undoManager setActionName:@"op3"];
// call operation3 -> "Edit - Undo op3" -- OK
// press Command+Z -> "Edit - Redo op1" -- not OK
}
【问题讨论】:
标签: nested undo-redo nsundomanager