是否可以将NSGradient转换为NSColor
- (void) viewWillDraw {
NSGradient *grad = [[NSGradient alloc] initWithStartingColor:[NSColor lightGrayColor] endingColor:[NSColor darkGrayColor]];
[super setBackgroundColor:*gradient*;
}
这是我的方法,我希望能够将NSGradient作为NSColor传递,显然我不能,有没有办法将它转换成一个?
答案 0 :(得分:1)
在10.8上,您可以按以下顺序创建:
通过这种方式,您可以创建一个看起来像任何东西的颜色,包括渐变。
也就是说,如果你尝试让渐变适应背景的大小(通过使用传递给块的矩形)并且背景是滚动视图中的文本视图,这可能无法正常使用窗口大小调整。 (当我尝试了一段时间后,图案没有重新绘制块;它只是平铺,至少在一个维度看起来很奇怪。)如果你的渐变或窗口的大小是固定的,那么你就不会有这个问题
答案 1 :(得分:0)
NSGradient无法转换为NSColor。
NSGradient类为绘制渐变填充提供支持 颜色,也称为石英中的阴影。这个课提供 绘制径向或线性(轴向)梯度的便捷方法 矩形和NSBezierPath对象。
如果您想将viewBackground设置为效果(渐变效果),您需要执行以下操作:
[grad drawInRect:<the rect of your view> angle:270]; //angle is upto your requirement,