2012-06-01 15 views
5

Gibt es eine Möglichkeit, die Farbe eines NSPopUpButton-Pfeils anzupassen? Ich habe mich umgeschaut, aber ich habe noch keine Antwort gefundenNSPopUpButton Pfeilfarbe

Antwort

1

Ich glaube wirklich nicht, dass es eine "einfache" Möglichkeit gibt, dies zu tun. Wenn Sie sich die API-Beschreibung anschauen, heißt es sogar, dass sie nicht auf die setImage-Routine reagiert. Ich habe ziemlich viel Arbeit getan, um Button-Objekte zu klassifizieren, und so weiter ... und ich denke, hier müssen Sie hingehen, um das zu tun, was Sie fragen.

0

Wie zu viele dieser Steuerelemente, habe ich es gemacht, indem ich NSPopupButton (Cell) und dann alle meine eigene Zeichnung in drawRect gemacht habe ... Ich habe ein bisschen betrogen und ein Bild verwendet das eigentliche Dreieck, anstatt zu versuchen mach es über Primitive.

- (void)drawRect:(NSRect)dirtyRect 
{ 
    //...Insert button draw code here... 
    //Admittedly the above statement includes more work than we probably want to do. 
    //Assumes triangleIcon is a cached NSImage...I also make assumptions about location 

    CGFloat iconSize = 6.0; 
    CGFloat iconYLoc = (dirtyRect.size.height - iconSize)/2.0; 
    CGFloat iconXLoc = (dirtyRect.size.width - (iconSize + 8)); 

    CGRect triRect = {iconXLoc, iconYLoc, iconSize, iconSize}; 
    [triangleIcon drawInRect:triRect]; 
} 
0

ich tat dies und es funktionierte für mich.

(void)drawImageWithFrame:(NSRect)cellFrame inView:(NSView *)controlView 
{ 
    NSPopUpButton *temp = (NSPopUpButton*)controlView; 

    NSString *strtile = temp.title; 

    AppDelegate *appdel = (AppDelegate*)[NSApplication sharedApplication].delegate; 
    NSFont *font = [NSFont systemFontOfSize:13.5]; 
    NSSize size = NSMakeSize(40, 10);// string size 

    CGRect rect = controlView.frame; 
    rect = CGRectMake((size.width + temp.frame.size.width)/2, rect.origin.y, 8, 17); 

    [self drawImage:[NSImage imageNamed:@"icon_downArrow_white.png"] withFrame:rect inView:self. 
}