I have a Core Data Entity called VisualizationPlugIn, and a class to go with 
it. This Entity declares these properties:

NSString*       shadowFrame;
NSRect          frame;          //  transient

and implements the getter and setter for frame as you would expect, converting 
the rect to/from an NSString, and calling will/didAccess/ChangeValueForKey.

When one of these is instantiated, it can also create an NSViewController 
subclass and view hierarchy that gets added to a window. When that happens, I 
programmatically bind the plug-in's top-level view's frame to the plug-in's 
frame Core Data property. This all seems to work. If the user re-positions the 
view hierarchy in the window, Core Data properly saves and restores that frame.

But Undo doesn't work. If I move the plug-in's view around, I can see that the 
context gets dirty (the close button in the window fills in), but if I undo, 
the view isn't moved back, and the context doesn't get clean.

So I thought Core Data must be undoing the shadowFrame property, and no one's 
getting notified. To the VisualizationPlugIn class, I added

+ (NSSet*)
keyPathsForValuesAffectingFrame
{
    return [NSSet setWithObject: @"shadowFrame"];
}

But it never gets called.

Any idea what I should be doing instead? Thanks!

-- 
Rick

_______________________________________________

Cocoa-dev mailing list ([email protected])

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