0

好的,长话短说:

  • 我正在使用(嵌入到包中)FontAwesome
  • 我将它用作某些自定义NSButtons中的字体
  • NSButton我想为它们着色的子类中,与 Xcode 选项卡项的着色方式完全相同

颜色渐变 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

4

1 回答 1

1

好的,这是解决方案,适用于任何可能觉得有用的人......

步骤1:

NSColor根据@Omz的出色回答,在上创建一个类别。在下面的代码中,您将看到它重命名为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 步:

享受结果。:-)

NSGradient 到 NSColor 应用于 FontAwesome

于 2014-10-14T10:37:06.313 回答