假设我有两个原子对象方法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
}
在撤消期间,必须再次设置操作名称。我认为您在撤消期间只设置了"op1"。