我正在尝试使我的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
但它也不起作用。