好的,长话短说:
NSButton
s NSButton
子类中,我想为它们着色,与Xcode标签项的颜色完全一致
这就是我设置颜色的方式(作为一个简单的NSColor):
NSColor *color = [NSColor colorWithCalibratedRed:0.09 green:0.55 blue:0.90 alpha:1.0];
NSMutableAttributedString *colorTitle =
[[NSMutableAttributedString alloc] initWithAttributedString:[self attributedTitle]];
NSRange titleRange = NSMakeRange(0, [colorTitle length]);
[colorTitle addAttribute:NSForegroundColorAttributeName
value:color
range:titleRange];
[self setAttributedTitle:colorTitle];
如何将其设为NSGradient
?
答案 0 :(得分:1)
好的,这是解决方案,适合任何有用的人......
第1步:
根据@Omz的great answer在NSColor
上创建一个类别。在下面的代码中,您将看到它重命名为colorFromGradient:
,只是为了与通常的Cocoa命名约定很好地混合......
第2步:
使用渐变颜色重绘标题
NSColor* gS = [NSColor colorWithCalibratedRed:0.07 green:0.47 blue:0.87 alpha:1.0];
NSColor* gE = [NSColor colorWithCalibratedRed:0.12 green:0.64 blue:0.94 alpha:1.0];
NSGradient* g = [[NSGradient alloc] initWithStartingColor:gE endingColor:gS];
NSColor *color = [NSColor colorFromGradient:g];
NSMutableAttributedString *colorTitle =
[[NSMutableAttributedString alloc] initWithAttributedString:[self attributedTitle]];
NSRange titleRange = NSMakeRange(0, [colorTitle length]);
[colorTitle addAttribute:NSForegroundColorAttributeName
value:color
range:titleRange];
[self setAttributedTitle:colorTitle];
第3步:
享受结果。 : - )