Try this: Create an outlet to your row template. When you need to update the popups, make a copy of that template. Make a copy of the rowTemplates the predicate editor currently tracks and iterate over them replacing the template in the list that is the same class as your custom template. Then set this new list of templates back onto the predicate editor.
The net effect is that the predicate editor will rebuild all the templates it's currently using which gives you a chance to update the popups as needed. I don't know what'll happen when the popup transitions to/from the text field... there's little you can do with that as its an optimization the predicate editor does when building it's templates (if there's only one option, why offer a choice?) cheap-n-dirty code sample -(void) updateTemplates { MyRowTemplate *_newTemplate = [[myRowTemplateOutlet copy] autorelease]; NSMutableArray *rowTemplates = [[[predicateEditor rowTemplates] mutableCopy] autorelease]; NSInteger ctr; for( ctr=0; ctr<[rowTemplates count]; ctr++ ) { if( [[rowTemplates objectAtIndex:ctr] isKindOfClass:[MyRowTemplate class]] ) { [rowTemplates replaceObjectAtIndex:ctr withObject:_newTemplate]; break; } } [predicateEditor setRowTemplates:rowTemplates]; } -- Jim http://nukethemfromorbit.com On Fri, Nov 13, 2009 at 10:48 AM, Dave DeLong <davedel...@me.com> wrote: > Hi everyone, > > I have an NSPredicateEditor, with some standard row templates. I'd like to > add a custom row template with three views: a popup button (indicating the > attributes this template references), a second popup button (with the > operators), and a third popup button that's populated with a list of possible > values. > > This is very similar to a regular row template, except that the list of > possible values is computed at runtime and can change periodically based on > system events. > > I've tried subclassing NSPredicateEditorRowTemplate, overriding > -templateViews, and returning my 3 popup buttons (all properly populated). > This works once, but after the row is created, I haven't been able to figure > out how to repopulate the popup button when the list of possible values > changes. I've tried setting the popup button's menu's delegate to an object > that will repopulate it, but the delegate methods are never called. > > I've also seen that when there's only one possible value, my popup button is > replaced with a textfield. I suppose that's OK, except that if the list of > possible values changes, I need that textfield to change to a popup button. > > How can I achieve my dynamic popup button in an NSPredicateEditorRowTemplate? > > Thanks! > > Dave DeLong > _______________________________________________ > > 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/jturner.lists%40gmail.com > > This email sent to jturner.li...@gmail.com > _______________________________________________ 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