Cocoa 丢失在NSButton类型和备用映像中

Cocoa 丢失在NSButton类型和备用映像中,cocoa,macos,nsbutton,Cocoa,Macos,Nsbutton,我想要一个带有图像和备用图像的NSButton。按下按钮时应显示备用图像,我还想显示代码中的备用图像,调用类似[按钮设置选择:是]。无需手动使用alternateImage属性即可实现此功能吗?最简单的方法是在两个图像之间切换: @implementation NSButton (Select) - (void) setSelected: (BOOL) yn { NSImage *const tmp = [self image]; [self setImage:[self al

我想要一个带有图像和备用图像的
NSButton
。按下按钮时应显示备用图像,我还想显示代码中的备用图像,调用类似
[按钮设置选择:是]
。无需手动使用
alternateImage
属性即可实现此功能吗?

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

@implementation NSButton (Select)

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

@end

这可以在不手动更改按钮图像的情况下实现:

在界面生成器(xib/nib编辑器)中,将NSButton的类型设置为“切换”,图像将自动更改为备用图像/标题


您可以使用类型设置为
NSToggleButton
NSButton
,然后使用
NSButton
nsstate
/
NSOffState
状态在
图像
备选图像
之间切换

NSButton* theButton = [[NSButton alloc] initWithFrame:....];
theButton.image = .....
theButton.alternateImage = .....
theButton.state = NSOffState; // displays the image
theButton.state = NSOnState; // displays the alternateImage

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

按钮式 被压着的时候 释放时 瞬间推入 第一幅图像变暗了 第一图像 瞬时光 第一幅图像变暗了 第一图像 瞬间变化 ALT图像 第一图像 推上/推下 第一幅图像变暗了 第一图像 开/关 第一幅图像变暗了 第一图像 切换 ALT图像 ALT图像 转换 ALT图像 ALT图像 收音机(无效) 加速器 第一幅图像变暗了 第一图像 多级Acc。 第一幅图像变暗了 第一图像
谢谢,你可能是对的。我添加了一个简单的类别来在图像之间切换。你知道如何为悬停事件设置备用图像(当鼠标位于按钮上方时,而不是单击时)?@有用:你必须使用
跟踪区域作为按钮,如果按钮类型为
NSToggleButton
,则可以使用
theButton.state=NSOffState在标准图像和备用图像之间切换和'theButton.state=nson状态``