如何在nsslider运动中填充nsbox中的颜色​​?

时间:2012-05-08 11:51:31

标签: cocoa

我想在NSBox滑块移动中填充颜色。 我使用以下代码。

-(IBAction)slider1move:(id)sender {
    [self.box setFillColor:[NSColor colorWithCalibratedRed: ([self.slider1 floatValue])/255.0 green:0.0 blue:0.0 alpha:0.0]];   
}

请指正。我的应用程序中有三个滑块,每个滑块对应红色,绿色和蓝色。

如何根据滑块的当前值填充滑块移动框中的颜色。 就像我的滑块显示值为50时,如果是红色,那么盒子应该用红色填充一半。

2 个答案:

答案 0 :(得分:3)

首先,请确保您已符合NSBox setFillColor:文档中列出的要求:

  

仅当接收者的框类型(boxType)为NSBoxCustom时才有效   及其边框类型(borderType)为NSLineBorder

假设不是问题,那么您可能需要快速猜测是否需要在框上调用setNeedsDisplay:以使用新颜色重新绘制它。

答案 1 :(得分:3)

看看你的颜色,你设置了完全透明的颜色 - alpha到0.0 这就是为什么你的颜色不会改变。

将您的颜色更改为alpha 1.0,如下所示:

[NSColor colorWithCalibratedRed: ([self.slider1 floatValue])/255.0 green:0.0 blue:0.0 alpha:1.0]