0
operation1
및 operation2
두 개의 원자 단위 메서드가 있고 자신의 실행 취소 동작을 undoManager
에 등록한다고 가정합니다. 벌크를 operation3
으로 만들면 이전 두 작업 및 그룹을 beginUndoGrouping/endUndoGrouping
으로 실행 취소 콜백을 호출합니다. 실행 취소하면 NSUndoManager
은 다시 실행 작업을 그룹화하지 않습니다. 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
}
복합 메소드에서 실행 취소 가능 액션을 결합하려는 의도가 잘못되었다고 생각합니다. '실행 취소/다시 실행'복합 액션을 올바른 순서로 스택 화하기 위해 많은 상용구 코드를 작성했습니다. – UncleAli