我正在尝试使用带有 NSImage 的 NSButton,类似于 Apple 的“预览”应用程序标记按钮,这些按钮在选择时会改变颜色。
通过查看捆绑资源,Apple 似乎使用 PDF 图像(例如 TB_annotMarkupUnderlineTemplate.pdf)并在选择 VS 时以编程方式更改颜色。具有蓝色的交替图像。
我不能对 PDF 图像进行图像屏蔽,因为它具有 alpha 值。
请问有什么建议吗?
如果我理解您的问题,您想在运行时更改图像的背景颜色。
即,在某些事件中,您将更改图像的背景颜色。此外,您知道 NSButton 没有背景,因为它们是由可可( aqua )样式直接绘制的。
您需要放置一些图像并隐藏按钮的标题(如果您不想显示标题)。
这是我的示例代码。
我在 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"]];
}
}