迷失在NSButton类型和替代图像

时间:2011-03-16 13:55:43

标签: cocoa macos nsbutton

我希望NSButton有一张图片和一张替代图片。按下按钮时应显示备用图像,我还想从代码中显示备用图像,调用类似[button setSelected:YES]的内容。如果没有手工使用alternateImage属性进行修改,这是否可行?

4 个答案:

答案 0 :(得分:14)

无需手动更改按钮的图像即可实现:

在Interface Builder中(xib / nib编辑器)将NSButton的 Type 设置为" Toggle" 和图像将自动更改为替代图像/标题。

Set the type to Toggle to use the alternate image

答案 1 :(得分:4)

您可以使用类型设置为NSButton的{​​{1}},然后使用NSToggleButton / {{1}在imagealternateImage之间切换} NSOnState的状态。

NSOffState

答案 2 :(得分:3)

最简单的方法是在两张图片之间切换:

@implementation NSButton (Select)

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

@end

答案 3 :(得分:0)

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

<头>
按钮类型 同时按住 发布时
瞬时推入 第一张图片变暗 第一张图片
瞬间之光 第一张图片变暗 第一张图片
瞬间变化 ALT 图像 第一张图片
推开/推开 第一张图片变暗 第一张图片
开/关 第一张图片变暗 第一张图片
切换 ALT 图像 ALT 图像
开关 ALT 图像 ALT 图像
无线电(无效)
加速器 第一张图片变暗 第一张图片
多级累加 第一张图片变暗 第一张图片

再次按下切换和切换将恢复到原始图像。 (如果您在按钮的属性检查器中将按钮类型更改为 Radio,它会恢复为 Switch。)