我希望NSButton
有一张图片和一张替代图片。按下按钮时应显示备用图像,我还想从代码中显示备用图像,调用类似[button setSelected:YES]
的内容。如果没有手工使用alternateImage
属性进行修改,这是否可行?
答案 0 :(得分:14)
无需手动更改按钮的图像即可实现:
在Interface Builder中(xib / nib编辑器)将NSButton的 Type 设置为" Toggle" 和图像将自动更改为替代图像/标题。
答案 1 :(得分:4)
您可以使用类型设置为NSButton
的{{1}},然后使用NSToggleButton
/ {{1}在image
和alternateImage
之间切换} 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。)