Für das Verständnis des NSUndoManager habe ich einen Verbesserungsvorschlag
1. Die create Methode sollte das array unsortiert erstellen.
2. Methode unsort löschen
3. Neue Methode sortArray und geänderten Code der Methode sort:
Alles anzeigen
Jetzt wird durch den Aufruf von Undo (aus dem Menu) der vorherige Zustand des array wieder hergestellt und mit Redo auch zurück
1. Die create Methode sollte das array unsortiert erstellen.
2. Methode unsort löschen
3. Neue Methode sortArray und geänderten Code der Methode sort:
Quellcode
- - (void)sortArray:(NSArray*)this {
- NSLog( @"Methode: %@", NSStringFromSelector(_cmd) );
- NSUndoManager *undoManager;
- undoManager = [self undoManager];
- [undoManager registerUndoWithTarget:self
- selector:@selector(sortArray:)
- object:[NSArray arrayWithArray:array]];
- [undoManager setActionName:@"sortieren"];
- [array replaceObjectAtIndex:0 withObject:[this objectAtIndex:0]];
- [array replaceObjectAtIndex:1 withObject:[this objectAtIndex:1]];
- [array replaceObjectAtIndex:2 withObject:[this objectAtIndex:2]];
- [array replaceObjectAtIndex:3 withObject:[this objectAtIndex:3]];
- [array replaceObjectAtIndex:4 withObject:[this objectAtIndex:4]];
- [array replaceObjectAtIndex:5 withObject:[this objectAtIndex:5]];
- [array replaceObjectAtIndex:6 withObject:[this objectAtIndex:6]];
- [array replaceObjectAtIndex:7 withObject:[this objectAtIndex:7]];
- [array replaceObjectAtIndex:8 withObject:[this objectAtIndex:8]];
- [array replaceObjectAtIndex:9 withObject:[this objectAtIndex:9]];
- [self printArray];
- }
- - (IBAction)sort:(id)sender {
- NSLog( @"Methode: %@", NSStringFromSelector(_cmd) );
- [self sortArray:[NSArray arrayWithObjects:ding1, ding2, ding3, ding4, ding5, ding6, ding7, ding8, ding9, ding10, nil]];
- }
Jetzt wird durch den Aufruf von Undo (aus dem Menu) der vorherige Zustand des array wieder hergestellt und mit Redo auch zurück