8

我想要一个NSButton带有图像和备用图像的图像。按下按钮时应显示备用图像,我还想从代码中显示备用图像,调用类似[button setSelected:YES]. 这是否可能在不手动使用alternateImage财产的情况下进行?

4

4 回答 4

19

这是可能的,无需手动更改按钮的图像:

在 Interface Builder(xib/nib 编辑器)中,将 NSButton类型设置为“Toggle”,图像将自动更改为备用图像/标题。

将类型设置为切换以使用备用图像

于 2014-05-27T10:59:58.840 回答
5

您可以使用NSButtonwith 类型设置为,然后使用 的/状态在和NSToggleButton之间切换。imagealternateImageNSOnStateNSOffStateNSButton

NSButton* theButton = [[NSButton alloc] initWithFrame:....];
theButton.image = .....
theButton.alternateImage = .....
theButton.state = NSOffState; // displays the image
theButton.state = NSOnState; // displays the alternateImage
于 2014-09-30T11:42:28.903 回答
3

最简单的方法是在两个图像之间切换:

@implementation NSButton (Select)

- (void) setSelected: (BOOL) yn
{
    NSImage *const tmp = [self image];
    [self setImage:[self alternateImage]];
    [self setAlternateImage:tmp];
}

@end
于 2011-03-16T14:21:38.497 回答
1

我只是在界面编辑器的属性检查器中构建了所有 10 种类型的按钮,没有添加任何编码。结果如下:

按钮类型 按住时 释放时
瞬时推入 第一张图片变暗了 第一张图片
瞬间之光 第一张图片变暗了 第一张图片
瞬间变化 替代图片 第一张图片
推开/推开 第一张图片变暗了 第一张图片
开关 第一张图片变暗了 第一张图片
切换 替代图片 替代图片
转变 替代图片 替代图片
收音机(无效)
加速器 第一张图片变暗了 第一张图片
多级ACC。 第一张图片变暗了 第一张图片

再次按下时,切换和切换将恢复为原始图像。(如果您在按钮的 Attribute Inspector 中将按钮类型更改为 Radio,它会恢复为 Switch。)

于 2021-06-05T20:31:28.917 回答