• 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: Customizing left expression title in NSPredicateEditorRowTemplate
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Customizing left expression title in NSPredicateEditorRowTemplate


  • Subject: Re: Customizing left expression title in NSPredicateEditorRowTemplate
  • From: Mike Chambers <email@hidden>
  • Date: Mon, 28 Dec 2009 15:09:34 -0800

ok. I got this working by adding:

- (id)copyWithZone:(NSZone *)zone {
    return [self retain];
}

to my template subclass.

Can anyone tell me if I am approaching this the correct way?

mike

On Mon, Dec 28, 2009 at 2:42 PM, Mike Chambers <email@hidden> wrote:
> I have am creating a simple NSPredicateEditorRowTemplate instance that
> I instantiate like so:
>
> --------
> NSMutableArray *seriesExpressions = [NSMutableArray
> arrayWithCapacity:[series count]];
> for(NSString *s in series)
> {
>        [seriesExpressions addObject:[NSExpression expressionForConstantValue:s]];
> }
>
> NSPredicateEditorRowTemplate * template =
> [NSPredicateEditorRowTemplate alloc] initWithLeftExpressions:[NSArray
> arrayWithObjects:[NSExpression expressionForKeyPath:@"series"], nil]
>                                         rightExpressions:seriesExpressions
>                                                         modifier:NSDirectPredicateModifier
>                                                        operators:[NSArray arrayWithObject:[NSNumber
> numberWithInt:NSEqualToPredicateOperatorType]]
>                                                          options:NSCaseInsensitivePredicateOption];
>                 ];
> --------
>
> Basically, the left expression is a key path named "series" and the
> right expression is an Array of possible values.
>
> This works great, except, I want the popup in the NSPredicateEditor to
> display "Series" and not the keypath "series". I know how to do this
> in Interface Builder, but since my right expressions are from a data
> source, I cannot set this in interface builder.
>
> How can I change the display title for the right expression?
>
> I tried subclassing NSPredicateEditorRowTemplate and then overriding:
>
> -------
> - (NSArray *)templateViews
> {
>        NSMutableArray* myviews = [[super templateViews] mutableCopy];
>
>        if(firstRun)
>        {
>                [myviews replaceObjectAtIndex:0 withObject:popup];
>                firstRun = FALSE;
>        }
>
>        return myviews;
> }
>
> with popup initiated like so:
>
> -------
>        NSMenu *popupMenu = [[[NSMenu allocWithZone:[NSMenu menuZone]]
> initWithTitle:@"Series"] autorelease];
>
>        NSMenuItem *menuItem = [[[NSMenuItem alloc] initWithTitle:@"Series"
> action:nil keyEquivalent:@""] autorelease];
>        [menuItem setRepresentedObject:[NSExpression expressionForKeyPath:@"series"]];
>        [menuItem setEnabled:YES];
>
>        [popupMenu addItem:menuItem];
>
>        popup = [[NSPopUpButton alloc] initWithFrame:NSZeroRect pullsDown:NO];
>        [popup setMenu:popupMenu];
> ------
>
> but this generates the following exception:
>
>
> ------
> we were not able to find a popup item at view index 0 with title
> Series.  Available items are: <CFArray 0x115d780b0
> [0x7fff7062bf20]>{type = immutable, count = 1, values = (
>        0 : <NSMenuItem: 0x115d73dc0 series>
> -----
>
> So, two questions:
>
> 1. Am I on the right track?
> 2. If not, how can I change the displayed title for the left expression?
>
> mike
>
_______________________________________________

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: 
 >Customizing left expression title in NSPredicateEditorRowTemplate (From: Mike Chambers <email@hidden>)

  • Prev by Date: Customizing left expression title in NSPredicateEditorRowTemplate
  • Next by Date: Re: Shared CoreData DataModel and DB file..
  • Previous by thread: Customizing left expression title in NSPredicateEditorRowTemplate
  • Next by thread: To-Many/To-Many Master/Detail Core Data / Bindings Question
  • Index(es):
    • Date
    • Thread