You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在macOS的Swift中通过代码添加NSView?解决不显示问题

解决代码添加NSView后不显示的问题

嘿,我懂你现在遇到的困扰——尝试用Swift代码添加一个NSView,结果它根本没显示出来,你本来期望窗口里能出现一个黑色方块,用的是Xcode 10.2和Swift 5对吧?

问题出在哪?

你的代码顺序搞反啦!你先去设置layer?.backgroundColor = .black,但这时候newView.wantsLayer还没设为true。NSView只有在wantsLayer为true的情况下,才会创建对应的CALayer实例,这时候newView.layer其实是nil,所以你设置背景色的操作等于没做,自然看不到视图。

修正后的代码

只需要把wantsLayer = true的设置移到设置layer背景色之前,问题就解决了:

import Cocoa
class ViewController: NSViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let newView = NSView(frame: NSRect(x: 10,y: 10, width: 100,height: 100))
        // 先开启layer支持,确保layer对象被创建
        newView.wantsLayer = true
        // 现在再设置layer的背景色就会生效了
        newView.layer?.backgroundColor = .black
        self.view.addSubview(newView)
    }
}

现在运行代码,你就能看到那个你想要的黑色方块啦!

内容的提问来源于stack exchange,提问作者William J Bagshaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:16:55