当前位置:  开发笔记 > IOS > 正文

更改NSButton的背景颜色

如何解决《更改NSButton的背景颜色》经验,为你挑选了4个好方法。

我在一个mac应用程序中有一个NSButton,它的颜色我想以编程方式改变,但我尝试的任何东西似乎都没有用.我试图在NSButtonCell上创建一个输出并在那里设置背景颜色,但这也不起作用.任何代码片段都会有所帮助.



1> Mark..:

假设所有东西都挂在IB中,用于无边界按钮.

// *.h file
IBOutlet NSButton* myButton;

// *.m file
[[myButton cell] setBackgroundColor:[NSColor redColor]];

请注意setBackgroundColor文档:

"只有在绘制无边框按钮时才使用背景颜色."

如果这不适合你,那么你需要覆盖NSButton并自己实现绘图.

祝好运.



2> Alex..:

标准的Aqua(药丸形)按钮由系统绘制.它们没有背景颜色.实际上,它们由Cocoa拼接在一起形成连贯按钮图像的图像组成.因此Cocoa无法根据您的喜好重新着色图像.只有默认按钮(将Return设置为其等效键的按钮)将具有蓝色脉冲背景.

你想要做的事情将涉及子类化NSButtonCell和自己的绘图.如果您想重新着色按钮图像以获得所需的效果,您可以使用优秀的主题公园实用程序来提取Apple按钮图像的副本并使用它们.我承认自己这样做是为了"窃取"某些无法访问的界面元素,例如iTunes中的滚动条.



3> brianLikeApp..:

这是另一种可能的方法:

    let button = NSButton()
    button.title = ""
    button.bezelStyle = .texturedSquare
    button.isBordered = false //Important
    button.wantsLayer = true
    button.layer?.backgroundColor = NSColor.red.cgColor



4> Oskar..:

我创建了一个NSButton子类FlatButton,它使得从Interface Builder更改按钮背景颜色,文本颜色,图标颜色,边框和其他类型的样式变得非常容易:

https://github.com/OskarGroth/FlatButton

FlatButton for macOS

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有