【发布时间】:2017-07-25 06:47:13
【问题描述】:
如何修改 NSButton 的外观和感觉,我想创建一个类似于 NSRoundRectBezelStyle 但具有图像和自定义高度的切换按钮
我如何改变背景颜色、悬停颜色改变、点击改变颜色、在状态为 ON 或 OFF 时创建切换效果、创建类似于 NSRoundRectBezelStyle 的边框。现有的本机按钮没有与我的 UI 元素完全相同的 UI。
UI 应该如下所示,但我还想在文本上方添加图像。
This Mac按钮 - 悬停效果
桌面按钮 - 开启效果
共享按钮 - 关闭效果
【问题讨论】:
-
如果原生的
NSButton不能做你想做的事,你必须创建NSButton和/或NSButtonCell的子类。阅读Button Programming Topics。你想要一个图标复选框吗? -
是的,但是文档没有足够的实现解释。请提供一些链接,其中包含有关实施的一些详细信息。而且我不想要复选框,我想要切换按钮,按下按钮类型。
-
来自Using Checkboxes: "图标复选框 您还可以拥有一个图标按钮复选框;也就是说,主要由其图标标识且文本很少或没有文本的复选框.如果按钮关闭,则显示为伸出。按钮打开,则显示为按下。(图标按钮无法显示混合状态。)
-
您可以在 Interface Builder 中或以编程方式创建图标复选框。如果您使用 Interface Builder,请从按钮开始。如果您以编程方式创建它,请创建一个 NSButton 实例。然后通过将其类型设置为 NSPushOnPushOffButton,将其图像位置设置为 NSImageOnly,将其边框类型设置为方形边框类型来更改它。然后将图像设置为您想要的。”。试一试。
-
悬停:NSButton: show alternate image on hover。代替替代图像,绘制替代背景。