-
Notifications
You must be signed in to change notification settings - Fork 2
/
NSButtonCell+TextColor.m
41 lines (35 loc) · 1.17 KB
/
NSButtonCell+TextColor.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//
// NSButtonCellTextColor.m
// MineSweeper
//
// Created by Nicholas Ewing on 4/27/09.
// Copyright 2009 Kuzoa, LLC. All rights reserved.
//
#import "NSButtonCell+TextColor.h"
@implementation NSButtonCell (TextColor)
- (NSColor *) textColor
{
NSAttributedString *attrTitle = [self attributedTitle];
int len = [attrTitle length];
NSRange range = NSMakeRange(0, MIN(len, 1)); // take color from first char
NSDictionary *attrs = [attrTitle fontAttributesInRange:range];
NSColor *textColor = [NSColor controlTextColor];
if (attrs) {
textColor = [attrs objectForKey:NSForegroundColorAttributeName];
}
return textColor;
}
- (void) setTextColor: (NSColor *) textColor
{
NSMutableAttributedString *attrTitle = [[NSMutableAttributedString alloc]
initWithAttributedString:[self attributedTitle]];
int len = [attrTitle length];
NSRange range = NSMakeRange(0, len);
[attrTitle addAttribute:NSForegroundColorAttributeName
value:textColor
range:range];
[attrTitle fixAttributesInRange:range];
[self setAttributedTitle:attrTitle];
[attrTitle release];
}
@end