Implementing Undo for a Cut operation, against an NSManagedObject
Implementing Undo for a Cut operation, against an NSManagedObject
- Subject: Implementing Undo for a Cut operation, against an NSManagedObject
- From: Neil Clayton <email@hidden>
- Date: Sat, 24 Jun 2006 12:51:48 +0100
Hi,
I'd like to be able to nicely undo a cut operation, for a managed
coredata object.
My initial idea was something like this (where Preset is the managed
object):
- (void) addPresetBack:(Preset*)preset {
[presetsController insert:preset];
}
- (IBAction) cut:(id)sender {
Preset *preset = [presetsController selectedObject];
[self copy:self]; // store some interesting data in pasteboard
NSUndoManager *undo = [self undoManager];
[[undo prepareWithInvocationTarget:self] addPresetBack:preset];
if(![undo isUndoing]) {
[undo setActionName:NSLocalizedString(@"Cut", @"Cut")];
}
[presetsController removeObject:preset];
}
But I'm finding (probably quite sensible) that the preset is dead/
empty once I get back to addPresetBack. This makes sense, since
removing it from the NSArrayController probably causes the object to
be deleted from the current DB. Thus, when Undo is called, I end up
inserting a blank object.
What's the recommended way to handle cut/undo style operations with
CoreData?
---
Neil Clayton
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden