如何使NSView透明

时间:2019-04-19 16:52:30

标签: swift macos nsview

我正在尝试使我的NSView透明。它只有一个带有黄色椭圆形的CALayer。我需要的是:使背景透明而不碰到黄色圆圈。

我正在Swift 5和Xcode 10.2.1上制作macOS应用。

我的代码:

 override func viewDidLoad() {
    super.viewDidLoad()

    view.wantsLayer = true

    //here I add CALayer and circle filled with yellow
    let radius = 25
    let sunShape = CAShapeLayer()
    sunShape.frame = CGRect(x: 400/2-radius, y: 400/2-radius, width: radius*2, height: radius*2)
    let path = CGMutablePath()
    let oval = CGPath(ellipseIn: CGRect(x: 0, y: 0, width: radius*2, height: radius*2), transform: nil)
    path.addPath(oval)
    sunShape.path = path
    sunShape.fillColor = NSColor.yellow.cgColor
    view.layer?.addSublayer(sunShape)

    //here I try to change background of a view to transparent
    view.layer?.backgroundColor = CGColor(red: 0, green: 0, blue: 0, alpha: 0.1)
    }

它根本不起作用。它不提供错误,也不使窗口透明。请帮助我了解我在做什么错。

更新: 我删除了

view.layer?.backgroundColor = CGColor(red: 0, green: 0, blue: 0, alpha: 0.1)

替换为

view.window?.isOpaque = false
view.layer?.backgroundColor = NSColor.clear.cgColor

但它也不起作用。

0 个答案:

没有答案