• 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: Cocoa Bindings and Dependent Keys question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cocoa Bindings and Dependent Keys question


  • Subject: Re: Cocoa Bindings and Dependent Keys question
  • From: Keary Suska <email@hidden>
  • Date: Sun, 31 May 2009 08:50:51 -0600

On May 30, 2009, at 2:18 PM, Kelvin Chung wrote:

I seem to have a very simple question, but the answer is eluding me for some odd reason, but here goes:

Suppose I have two NSArrayControllers, ac1 and ac2. Suppose now that I have a third controller ac3, whose content array is dependent on both ac1.selection and ac2.selection (or some keypath therein). Since I can't bind ac3 to both ac1 and ac2 at the same time, I have a class which has a dependent key. In particular, suppose I have the following:

@interface Foo {
  IBOutlet NSArrayController* ac1;
  IBOutlet NSArrayController* ac2;
}
/* ... */
@end

@implementation Foo
- (id) ac1Selection { return [[ac1 selection] valueForKey:@"bar"]; }
- (id) ac2Selection { return [[ac2 selection] valueForKey:@"baz"]; }

+ (NSSet*) keyPathsForValuesAffectingAc3ContentArray {
  return [NSSet setWithObjects:@"ac1Selection", @"ac2Selection", nil];
}

The +keyPathsForValuesAffectingKey is, at least in theory, correct, but it won't work. You will never receive KVO notifications when the selection changes. Instead, why not just observe "selectedObjects" of each array controller, and in - observeValueForKeyPath:ofObject:change:context: send willchange/ didchange for the "ac3ContentArray" key?


- (NSArray*) ac3ContentArray {
  /* Do stuff using -ac1Selection and -ac2Selection */
}
@end

Keary Suska Esoteritech, Inc. "Demystifying technology for your home or business"

_______________________________________________

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


References: 
 >Cocoa Bindings and Dependent Keys question (From: Kelvin Chung <email@hidden>)

  • Prev by Date: Re: Showing more warnings possible in Xcode?
  • Next by Date: Label randomly cut off in NSOutlineView column
  • Previous by thread: Cocoa Bindings and Dependent Keys question
  • Next by thread: Re: [ NSKeyedArchiver ] archiveRootObject:toFile: hoses my directory's permissions
  • Index(es):
    • Date
    • Thread