How to make Redo work with a custom group
How to make Redo work with a custom group
- Subject: How to make Redo work with a custom group
- From: Paul Bruneau <email@hidden>
- Date: Mon, 29 Oct 2007 10:11:15 -0400
Hi-
I understand how Redo works as described on page 145 of Hillegass. He
makes his insertObject: and removeObject: methods the inverse of each
other so that when you do one, it puts the other one on the undo stack.
But in my situation, I don't seem to be able to implement it that way.
I want to undo a drag that occurs in a custom view.
I put this into my -mouseDown: method:
//start custom undo grouping
[[appController myUndo] setGroupsByEvent:NO];
[[appController myUndo] beginUndoGrouping];
then I put this into my -mouseDragged: method:
[[[appController myUndo] prepareWithInvocationTarget:selectedOS]
setStartTime:[selectedOS startTime]];
This gets called every time the mouse moves of course.
Finally, in my -mouseUp: method I close it up:
//end custom undo grouping
[[appController myUndo] setActionName:[NSString
stringWithFormat:@"Move order step"]];
[[appController myUndo] endUndoGrouping];
[[appController myUndo] setGroupsByEvent:YES];
So Undo works great, but I when I try Redo (which does show OK in the
menu), nothing happens. This is I think because there is no undo code
in the setStartTime: call that I wrap into the
prepareWithInvocationTarget:
But how do I go about it? Do I make a second -setStartTime method
called something like -setStartTimeWithUndo that puts its inverse on
the undo stack?
Thank you for any insight
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden