如何在macOS上使用Swift编程以编程方式添加NSView?

3

尝试以编程方式添加简单的NSView,但它未出现。

** 答案 **:在.backgroundColor = .black之前执行.wantsLayer = true

我将颜色设置为黑色,因此我期望在窗口中有一个黑色的正方形。

我正在使用Xcode 10.2 Swift 5。

import Cocoa

class ViewController: NSViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let newView = NSView(frame: NSRect(x: 10,y: 10, width: 100,height: 100))
        newView.layer?.backgroundColor = .black
        newView.wantsLayer = true
        self.view.addSubview(newView)
    }
}

在设置层的背景颜色之前,您需要将 wantsLayer 设置为 true。 - Leo Dabus
1个回答

6
import Cocoa

let frame = CGRect(origin: .zero, size: CGSize(width: 100, height: 100))
let view = NSView(frame: frame)

view.wantsLayer = true
view.layer?.backgroundColor = NSColor.black.cgColor
self.view.addSubView(view)

self.view.addSubView(view) 不是 view addSubView。 - İsa GİRİŞKEN
3
为了帮助未来的读者,解释这段代码如何解决 OP 问题是至关重要的。 - Leo Dabus
顺便说一句,不是我给你的代码投了反对票,但是没有 ViewController 的代码毫无意义。self.view 实例只存在于 NSViewController 方法或计算属性中。 - Leo Dabus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接