2012-06-01 15 views
5

NSPopUpButton矢印の色をカスタマイズする方法はありますか?私は周りを見回しましたが、私はまだ回答を見つけていませんNSPopUpButton矢印の色

答えて

1

私は本当にこれを行うための "簡単な"方法はないと思います。 APIの説明を見ると、setImageルーチンに応答しないということさえあります。私はボタンオブジェクトなどをサブクラス化するかなりの作業を行ってきました。そして、これはあなたが求めていることをするために行くべき場所だと思います。

0

NSPopupButton(Cell)をサブクラス化し、drawRectで私自身の描画をすべてやっていました。私はちょっと気にしていましたが、実際に試してみるのではなく、実際の三角形を使っていました。プリミティブを使用して行います。

- (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

私はこれを実行してくれました。

(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. 
}