1

我想将背景设置为NSBox渐变。在 Interface Builder 中,可以设置渐变的背景NSBox颜色selectedMenuColor

NSBox只有一个setFillColor方法,那么 Interface Builder 如何用渐变填充它?

如何以编程方式填充一个NSBox而不对其进行子类化?子类化将是微不足道的,NSBox但 Interface Builder 的工作原理表明可能会有更好的解决方案。

4

4 回答 4

2

selectedMenuColor是一种不显示为纯色的“神奇”颜色。许多这些“神奇”颜色存在于系统中。

我以前用过colorWithPatternImage:这个。但请注意,您用作图案的图像将被平铺,因此您可能必须将图像的大小调整为框的大小。

于 2008-11-12T14:23:38.213 回答
0

可能你最接近的方法是使用创建的 NSColor colorWithPatternImage:,然后创建你想要的渐变作为图像并将其加载。丑陋,但应该可以工作。我认为子类化是你最好的选择。

于 2008-11-11T20:02:00.717 回答
0

selectedMenuColor 颜色实际上是渐变的预渲染图像,而不是动态绘制的渐变,因此无法指定任意渐变作为背景颜色。就像 Ben 说的那样,子类化可能是要走的路。

于 2008-11-11T20:51:32.287 回答
0

xib中,选择NSBox,然后转到效果检查器,检查NSBox核心动画层。现在

IBOutlet NSBox *box;

[box.setWantsLayer:YES];

[box.layer setBackgroundColor:[[NSColor whiteColor] CGColor]];

或者

[box.setWantsLayer:YES];

[box.layer setBackgroundColor:[[NSColor colorWithPatternImage:[NSImage imageNamed:@"white.gif"]] CGColor]];
于 2013-07-18T14:08:47.690 回答