iPhoto 类似 NSButton

发布于 2025-01-05 08:25:22 字数 219 浏览 0 评论 0原文

如何创建像图片中那样的 iPhoto 按钮

在此处输入图像描述

我已经尝试了使用圆形纹理的几种方法按钮或将按钮的图像设置为模板。但这些方法都没有真正起作用。

到目前为止,感谢您的回答。

编辑: 按钮的图像应该只是一个简单的 pdf。渐变和白色阴影应该自动绘制。

How can I create a iPhoto like button like in the picture

enter image description here

I've tried out several things using round textured buttons or setting the button's image as template. But none of these approaches really works.

Thanks so far for your answers.

EDIT:
The image of the button should just be a simple pdf. The gradient and the white shadow should be drawn automatically.

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

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

发布评论

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

评论(3

跨年 2025-01-12 08:25:22

正如 Justin 提到的,您应该创建一个 Momentary Change 类型的 NSButton。然后,您应该通过在文件名中包含后缀 Template 来表明它是模板图像,例如 EditTemplate.png

我知道您说过您尝试将图像设置为模板,但我发现如果我不使用瞬时更改按钮类型,这并不总是有效。

As Justin mentioned you should create an NSButton with type Momentary Change. You should then indicate that it is a template image by including the suffix Template in the filename, e.g. EditTemplate.png.

I know you said you tried setting the image as template, but I found that this wasn't always effective if I wasn't using the Momentary Change button type.

萌无敌 2025-01-12 08:25:22

您可以子类化 NSButtonCell。并实现这些功能:

- (void)drawImage:(NSImage*)image 
        withFrame:(NSRect)frame 
           inView:(NSView*)controlView
{
     // Draw the image of the pen. 
}

- (NSRect)drawTitle:(NSAttributedString*)title 
          withFrame:(NSRect)frame 
             inView:(NSView*)controlView
{
     // Draw the text.
}

- (void)drawBezelWithFrame:(NSRect)frame 
                    inView:(NSView *)controlView
{
}

要设置子类,只需将 Interface Builder 中按钮单元的“自定义类”字段从“NSButtonCell”编辑为“YourSubClass”

You could subclass NSButtonCell. And implement these functions:

- (void)drawImage:(NSImage*)image 
        withFrame:(NSRect)frame 
           inView:(NSView*)controlView
{
     // Draw the image of the pen. 
}

- (NSRect)drawTitle:(NSAttributedString*)title 
          withFrame:(NSRect)frame 
             inView:(NSView*)controlView
{
     // Draw the text.
}

- (void)drawBezelWithFrame:(NSRect)frame 
                    inView:(NSView *)controlView
{
}

To setup the subclass just edit the "Custom Class" field of the Button Cell in Interface Builder from "NSButtonCell" to "YourSubClass"

盛装女皇 2025-01-12 08:25:22

我认为最简单的解决方案是创建类型为:瞬时更改的按钮,并在其上添加带有 .png 类型文件的透明背景图像,当按钮打开时,您可以更改为其他带背景的图片。

例如设置/更改图像:

[_yourButton setImage:_image];

如果我正确理解了您想要做什么。

I think the simplest solution is to create button with type: Momentary Change and add on it image with transparent background with .png type of file and when button is ON You can change to other picture with background.

For example to set/change image:

[_yourButton setImage:_image];

If I have understood correctly what You want to do.

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