I don't think I'm "replacing" the document per se. In my NSDocument init 
override, I do this (only relevant parts copied):

if (![self loadingWindowController])
        [self setLoadingWindowController:[[MyLoadingWindowController alloc] 
init]]; 
[[self loadingWindowController] setDocument:self];

MyLoadingWindowController currently only has its init method overridden:

-(id)init
{
        if (![super initWithWindowNibName:@"Loading"])
                return nil;
        
        return self;
}

I guess I could even just not use my own NSWindowController subclass and just 
call initWithWindowNibName directly in my NSDocument init and get the same 
effect.

Reading up on the documentation, I guess what I should do in my Document init 
is this:

if (![self loadingWindowController])
        [self setLoadingWindowController:[[MyLoadingWindowController alloc] 
init]]; 
[self addWindowController:loadingWindowController]; 

I'll test that out today.

Regards,
Mikkel

James Bucanek wrote:
>> Basically, if I add an observer using the path "document.someProperty", KVO
>> attaches the observer to the the someProperty object, not document. So if I
>> change it (document.someProperty = newProperty), newProperty replaces the
>> original object, which is then released. newProprety doesn't have any
>> observers and doesn't post any notifications when its properties change.
> 
> Boy, I totally hosed that description.
> 
> What I meant to say is, if you're observing a property of a property 
> (controller.document.prop) the observer for the property is attached to 
> document object, not the controller object. So if you replace the document 
> object in the controller (controller.document = newDocument), the binding in 
> the old document gets lost and changes to the new document.prop won't be 
> observed.
> 
> --
> James Bucanek

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

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