• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: bindings via file's owner don't update
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bindings via file's owner don't update


  • Subject: Re: bindings via file's owner don't update
  • From: Mikkel Eide Eriksen <email@hidden>
  • Date: Mon, 29 Nov 2010 17:10:03 +0100

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@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

  • Follow-Ups:
    • Re: bindings via file's owner don't update
      • From: Quincey Morris <email@hidden>
    • Re: bindings via file's owner don't update
      • From: Mikkel Eide Eriksen <email@hidden>
References: 
 >bindings via file's owner don't update (From: Mikkel Eide Eriksen <email@hidden>)

  • Prev by Date: Re: bindings via file's owner don't update
  • Next by Date: Re: bindings via file's owner don't update
  • Previous by thread: Re: bindings via file's owner don't update
  • Next by thread: Re: bindings via file's owner don't update
  • Index(es):
    • Date
    • Thread