Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NSButton how to color the text

on OSX I have an NSButton with a pretty dark image and unfortunately it is not possible to change the color using the attributes inspector. See picture the big black button, the text is Go.

enter image description here

Any clues for a possibility to change the text color? I looked in to the NSButton class but there is no method to do that. I´m aware that I could make the image with white font but that is not what I want to do.

Greetings from Switzerland, Ronald Hofmann --- 

like image 818
Ronald Hofmann Avatar asked Oct 28 '12 15:10

Ronald Hofmann


1 Answers

Here is two other solutions: http://denis-druz.okis.ru/news.534557.Text-Color-in-NSButton.html

solution 1:

-(void)awakeFromNib {     NSColor *color = [NSColor greenColor];     NSMutableAttributedString *colorTitle = [[NSMutableAttributedString alloc] initWithAttributedString:[button attributedTitle]];     NSRange titleRange = NSMakeRange(0, [colorTitle length]);     [colorTitle addAttribute:NSForegroundColorAttributeName value:color range:titleRange];     [button setAttributedTitle:colorTitle]; } 

solution 2:

in *.m file:

- (void)setButtonTitleFor:(NSButton*)button toString:(NSString*)title withColor:(NSColor*)color {     NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];     [style setAlignment:NSCenterTextAlignment];     NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:color, NSForegroundColorAttributeName, style, NSParagraphStyleAttributeName, nil];     NSAttributedString *attrString = [[NSAttributedString alloc]initWithString:title attributes:attrsDictionary];     [button setAttributedTitle:attrString]; }  -(void)awakeFromNib {     NSString *title = @"+Add page";     NSColor *color = [NSColor greenColor];     [self setButtonTitleFor:button toString:title withColor:color]; } 
like image 123
Denis Avatar answered Sep 29 '22 05:09

Denis