我正在尝试为NSButton做一些基本样式,我正在改变背景颜色。然而,似乎背景颜色覆盖在我的圆角上。
如何更改圆形按钮的按钮背景颜色?
代码:
testButton.title = "Start Test"
testButton.state = .off
testButton.image = #imageLiteral(resourceName: "stopwatch_Start")
testButton.isBordered = false
testButton.wantsLayer = true
testButton.layer?.backgroundColor = NSColor.gray.cgColor
testButton.isEnabled = true
编辑: 我发现如果我添加了以下内容,我可以再次将矩形剪辑变成圆形:
testButton.layer?.masksToBounds = false
testButton.layer?.cornerRadius = 20
然而,当我改变按钮背景时,我需要重做角落放射线似乎很奇怪
答案 0 :(得分:1)
您已将按钮图层(即矩形)设置为具有背景颜色。该背景填充整个图层,这是一个矩形。因此,完全可以预期它会像这样填充它。
所以是的,您想要的是设置cornerRadius
以获得圆角,但不是,您不需要关闭masksToBounds
。这样做会让内容在外部显示按钮的界限。这几乎肯定不是你想要的。
请注意,通常您可以修改按钮的图层,但最终可能会遇到一些限制。与UIKit不同,AppKit是在Core Animation层存在之前的几十年设计的,因此它仍然主要基于NSCell实现,并且层控制的控件变体在修改层时将具有不同的(未记录的)灵活性。
如果你想要完全控制,建议创建一个NSButton子类,它具有层托管,而不是图层支持,你可以完全控制按钮的外观。