迷失在 NSButton 类型和替代图像中

发布于 2024-10-22 00:15:09 字数 165 浏览 3 评论 0原文

我想要一个带有图像和备用图像的 NSButton 。按下按钮时应显示备用图像,我还想通过代码显示备用图像,调用类似 [button setSelected:YES] 的内容。如果不手动使用 alternateImage 属性,这是否可能?

I’d like to have an NSButton with an image and an alternate image. The alternate image should be displayed while the button is being pressed and I’d also like to display the alternate image from code, calling something like [button setSelected:YES]. Is this possible without monkeing with the alternateImage property by hand?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

爱给你人给你 2024-10-29 00:15:09

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

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

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

This is possible without manually changing the button's image:

In Interface Builder (xib/nib Editor) set the Type of NSButton to "Toggle" and the image will automatically change to the alternate image/title.

Set the type to Toggle to use the alternate image

提笔书几行 2024-10-29 00:15:09

您可以使用类型设置为 NSToggleButtonNSButton,然后使用 imagealternateImage 之间切换NSButton 的 code>NSOnState / NSOffState 状态。

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

You can use a NSButton with type set to NSToggleButton and then switch between the image and the alternateImage using the NSOnState / NSOffState states of the NSButton.

NSButton* theButton = [[NSButton alloc] initWithFrame:....];
theButton.image = .....
theButton.alternateImage = .....
theButton.state = NSOffState; // displays the image
theButton.state = NSOnState; // displays the alternateImage
老旧海报 2024-10-29 00:15:09

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

@implementation NSButton (Select)

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

@end

The easiest way is to switch between the two images:

@implementation NSButton (Select)

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

@end
辞慾 2024-10-29 00:15:09

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

按钮类型按住释放时
瞬时推入变暗第一个图像
第一个图像瞬时亮第一个图像变暗第一个图像
瞬时更改ALT 图像第一个图像
推开/推开第一个图像变暗第一个图像
开/关第一个图像变暗第一张图像
切换ALT IMAGEALT IMAGE
开关ALT IMAGEALT IMAGE
无线电(无效)
加速器第一张图像变暗第一张图像
多级加速。第一张图像变暗第一张图像

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

I just built all 10 types of buttons in the interface editor's attribute inspector with no added coding. Here are the results:

button typewhile held downwhen released
Momentary Push-Infirst image darkenedfirst image
Momentary Lightfirst image darkenedfirst image
Momentary ChangeALT IMAGEfirst image
Push On / Push Offfirst image darkenedfirst image
On / Offfirst image darkenedfirst image
ToggleALT IMAGEALT IMAGE
SwitchALT IMAGEALT IMAGE
Radio (not valid)
Acceleratorfirst image darkenedfirst image
Multi Level Acc.first image darkenedfirst image

Toggle and Switch will revert to the original image when pressed again.
(If you change the button type to Radio in the button's Attribute Inspector, it reverts to Switch.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文