Namaste! OK, for the sake of the discussion:
1. I have an entity called Item. 2. Item has many attributes, the one of interest is Color. It is a string attribute. 3. Assume acItem, an array controller is bound to Item. 4. Assume acItemColors is bound to Item (but not editable), and has the contentArray set to acitem.arrangedobjec...@distinctunionofobjects.color. 5. On a window, acItem handles the attributes of item. 6. acItemColors simply gets an aggregated list of colors of items. 7. There is a combo-box whose Value is bound to acItem.selection.Color. The content/contentValues are bound to acItemColors.arrangedObjects. No model keyPath. 8. in awakeFromNib for the window controller behind the window, a sort descriptor is created to specify the sort for acItemColors: sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"" ascending:YES] This seems to work. Last question is whether this is a proper way to do this. Peace, Love, and Light, /s/ Jon C. Munson II > -----Original Message----- > From: I. Savant [mailto:idiotsavant2...@gmail.com] > Sent: Wednesday, April 08, 2009 6:46 PM > To: jmun...@his.com > Cc: 'Cocoa Developers' > Subject: Re: Creating an ordered list for combo-box content from a Core > Data entity attribute > > On Apr 8, 2009, at 6:24 PM, Jon C. Munson II wrote: > > > However, your previous reply sparked something and I got the array > > controller partially working. It now returns the list, albeit > > unordered. > > The contentArray (can't use contentSet in this case) is bound to the > > "master" array controller's > > arrangedobjec...@distinctunionofobjects.stringattribute. This gets > > me the > > aggregated list of stringAttributes (or so I think anyway). > > > > Now, when I attempt to set the sort descriptor in the array > > controller, I > > get a not key-value coding compliant error. This is because there > > is only > > one attribute being returned and it apparently doesn't have a key > > that I > > know (and yes, I checked to make sure I spelled my keyPath > > correctly). When > > binding the combo-box content/content values, I simply used > > arrangedObjects > > with no keypath and that seems to be correct as the list is loaded and > > displayed. > > Okay, this is where we run into the same old problem of "not enough > info" to make a clear and concise answer. It's exceedingly difficult > to model all this without a clear description of what relevant (array) > controllers (by name) you're using, and how your popup is bound to its > source array controller, and how you're setting your sort descriptors. > > In a simple test case, if you have an array controller which > controls a set of "Person" instances (from wherever), and Person has > the attribute "fullName, which you want to be both the displayed > string in the popup button, *and* the attribute by which they're > sorted, you need to: > > 1 - Set the array controller's sort descriptors (an array of > descriptors) to include a descriptor for the key "fullName". > > 2 - Bind the popup's *content* to the array controller's > arrangedObjects (no model key path). > > 3 - Bind the popup's *content values* to the array controller's > arrangedObjects, model key path "fullName". > > 4 - Bind the popup's *selected object* to the array controller's > selection (no model key path). > > The reason we're distinguishing selected objects from their display > values is that, being a Core Data application as you mentioned, it's > likely that the "Person" (or whatever it is for you) selected with the > popup will set some relationship for some other object. You need the > object, rather than the name in this case. > > -- > I.S. _______________________________________________ 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 arch...@mail-archive.com