是否可以将 NSGradient 转换为 NSColor
- (void) viewWillDraw {
NSGradient *grad = [[NSGradient alloc] initWithStartingColor:[NSColor lightGrayColor] endingColor:[NSColor darkGrayColor]];
[super setBackgroundColor:*gradient*;
}
这是我的方法,我希望能够将 NSGradient 作为 NSColor 传递,这显然我不能,有什么方法可以将其转换为 NSColor 吗?
最佳答案
在 10.8 上,您可以按以下顺序创建:
- 一个可以按照您喜欢的方式绘制渐变的 block 。
- An image that is backed by the block.
- A color that repeats the image as a pattern.
通过这种方式,您可以创建看起来像任何颜色的颜色,包括渐变。
也就是说,如果您尝试让渐变适应背景的大小(通过使用传递给 block 的矩形)并且背景是 ScrollView 中的 TextView ,则这可能无法在调整窗口大小时正常工作。 (当我不久前尝试过时,图案没有重新绘制 block ;它只是平铺,这至少在一个维度上看起来很奇怪。)如果你的渐变或窗口的大小是固定的,那么你就不会遇到这个问题.关于cocoa - 将 NSGradient 转换为 NSColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16139065/