如何编写NSButton看起来就像图像

问题描述 投票:12回答:2

使用代码(不是“接口”构建器)我需要创建一个看起来像图像的NSButton。具体来说,我想使用NSImageNameStopProgressFreestandingTemplate,我需要它看起来不像按钮,但看起来像图像。这意味着: 1.没有'按下'的样子 2.没有边框,按钮没有任何可见性

谢谢。

nstableview nsimage nsbutton
2个回答
19
投票

我知道这个反应有点晚了,但你可以试试这个,给出thisButton

[thisButton setImage:[NSImage imageNamed:NSImageNameStopProgressFreestandingTemplate]];
[thisButton setImagePosition:NSImageOnly];
[thisButton setBordered:NO];

最后一行是关键点:删除按钮边框有效地剥离它的边框,只留下图像点击。 (顺便说一下,我没有特别试过上面的代码,所以你可能需要进行一些其他调整,例如设置imageScalingbuttonType,以使其发挥最佳效果。)

最后一点说明:如果您正在使用模板图像(正如您所说的那样),Cocoa会自动显示一个带有浅灰色渐变的图像;单击按钮时,它会瞬间变暗为纯黑色。这是一个你不想要的自动“'按钮'外观”;然而,它非常微妙,并且是按钮工作的良好指示。如果您不希望这种情况发生,您可以在其上获得所需图像和[stopImage setTemplate:NO];的实例。


0
投票

禁用isBordered

let button = NSButton(
  image: NSImage(named: NSImage.Name("plus"))!,
  target: self,
  action: #selector(onButtonPress)
)

button.isBordered = false
© www.soinside.com 2019 - 2024. All rights reserved.