【问题标题】:Dynamically changing NSButton NSImage color动态改变 NSButton NSImage 颜色
【发布时间】:2013-03-20 11:51:23
【问题描述】:

我试图拥有一个带有nsimage的nsbutton,类似于苹果的“预览”应用标记按钮,这些按钮会在选择时更改颜色。

通过查看捆绑资源,Apple 似乎使用 PDF 图像(例如 TB_annotMarkupUnderlineTemplate.pdf)并在选择 VS 时以编程方式更改颜色。有一个蓝色的交替图像。

我不能对 PDF 图像进行图像屏蔽,因为它具有 alpha 值。

有什么建议吗?

【问题讨论】:

  • 包含您迄今为止尝试过的代码 sn-ps 总是好的,这样人们就知道您至少已经尝试过了。在代码中发现错误也比从头开始创建解决方案要容易得多。 :)

标签: xcode macos cocoa


【解决方案1】:

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

即,在某些事件中,您将更改图像的背景颜色。此外,您知道 NSButton 没有背景,因为它们是由可可( aqua )样式直接绘制的。

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

这是我的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"]];
    }
}

【讨论】:

  • 图片只是一张PDF图片,选中后可以变色。类似于 Apple 的 Preview 应用(注释菜单)
猜你喜欢
  • 2018-12-31
  • 1970-01-01
  • 2011-10-19
  • 2012-10-17
  • 2023-03-21
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多