首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Swift在代码中更改Mac应用程序视图的背景色?

如何使用Swift在代码中更改Mac应用程序视图的背景色?
EN

Stack Overflow用户
提问于 2017-01-22 11:44:21
回答 3查看 5.8K关注 0票数 -3

我正在开发一个单视图Mac应用程序,我想以编程方式更改背景颜色。我该怎么做呢?

EN

回答 3

Stack Overflow用户

发布于 2017-01-22 11:58:17

将此代码放入viewDidLoad()函数用于您的mainNSViewController。那是ViewController.swift在Cocoa应用程序模板中。

代码语言:javascript
运行
复制
// tell the controller's view to use a CALayer as its backing store
view.wantsLayer = true
// change the background color of the layer
view.layer?.backgroundColor = NSColor.red.cgColor

显然,用你喜欢的颜色代替红色。对于RGBA,您可以使用CGColor(red:green:blue:alpha)而不是NSColor。它接受CGFloat值从0到1,因此例如石灰绿色将是:CGColor(red: 50/255, green: 205/255, blue: 50/255, alpha: 1)

一旦你设置好了 view.wantsLayer,则无需再次设置即可更改颜色。

票数 13
EN

Stack Overflow用户

发布于 2017-01-22 12:06:26

确保您正在尝试更改视图,而不是视图控制器。视图控制器没有背景,因为它们不显示任何内容,但它们有这样的视图:

代码语言:javascript
运行
复制
class ViewController: NSViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.layer?.backgroundColor = NSColor.red.cgColor;
}

这将使视图控制器的主视图的背景颜色变为红色。

票数 5
EN

Stack Overflow用户

发布于 2021-02-25 15:26:31

这是更改MacOS背景色的扩展。

代码语言:javascript
运行
复制
extension NSViewController{
    

    func setBackgroundColor(_ color : NSColor, alpha : CGFloat){
        
        view.wantsLayer = true
        view.layer?.backgroundColor = color.cgColor
        view.alphaValue = alpha
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41787099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档