动态更改NSButton NSImage颜色

时间:2013-03-19 20:16:17

标签: xcode macos cocoa

我正在尝试使用带有NSImage的NSButton,类似于Apple的“预览”应用标记按钮,这些按钮会在选中时更改颜色。

从查看捆绑资源看,Apple看起来好像使用了PDF图像(例如TB_annotMarkupUnderlineTemplate.pdf),并在选择VS时以编程方式更改颜色。具有蓝色的交替图像。

我无法使用PDF图像进行图像遮罩,因为它具有alpha值。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你想在运行时改变图像的背景颜色。

即,在某些情况下,您将更改图像的背景颜色。另外你知道NSButton没有背景,因为它们是由可可(浅绿色)风格直接绘制的。

您需要放置一些图像并隐藏按钮的标题(如果您不想显示标题)。

这是我sample code的相同内容。

我在NSComboBox上使用过IBAction,

- (IBAction)comboSelect:(id)sender {

    if ([[sender stringValue] isEqualToString:@"Red" ]) {
        [self.button setImage:[NSImage imageNamed:@"imgRed"]];
    }
    else if ([[sender stringValue] isEqualToString:@"Green" ]) {
        [self.button setImage:[NSImage imageNamed:@"imgGreen"]];
    }
    else if ([[sender stringValue] isEqualToString:@"Blue" ]) {
        [self.button setImage:[NSImage imageNamed:@"imgBlue"]];
    }
}