On 26 Mar 2008, at 22:56, Graham Cox wrote:
The undo manager will directly change the data in the text view using an invocation or target/action - it doesn't go back through changeFont: normally, which is really a "high level" method.

Maybe the solution to this is to subclass NSUndoManager so that you can hook into the undo and redo methods and use those opportunities to modify the change count of the document.

So I implement in MyUndoManager:
- (void)undo
{
        NSString *action = [self undoActionName];
        [ super undo ];
if ( action contains "Font" ) [myDocument updateChangeCount:NSChangeUndone];
}

But: If the language is switched to German, this does no longer work. Now one would have to look for "Schrift" instead.

What I really want is:
NSInvocation *i = [ self invocationOnTopOfUndoStack]; But such a method I cannot find.

Or: +[NSTextView undoActionNameToBeUsedForSettingFonts] which would return "Schrift wählen" if the language currently is set to German.
Again - cannot find such a method.

So - what can I do?


You can switch the document's undo manager early in the document creation sequence.

Yes. I did in MyDocument init:
MyUndoManager *undoManager = [ [ MyUndoManager alloc ] initForDocument: self ];
[ self setUndoManager: undoManager ];   
[ undoManager release ];


Kind regards,

Gerriet.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to