NSButton不掩盖边界

时间:2018-06-30 16:45:08

标签: swift nsbutton

我正在将iOS的应用程序转移到OSX中的工具栏应用程序。尽管我使用的是Swift,但对象却大不相同。但是,我有一个主要问题,我似乎无法克服。

下面的代码产生所示的NSButton,但我无法摆脱灰色背景。 masktobound无效。我尝试过分别遮盖每个角,没有效果。我只想要一个简单的圆形按钮。

我还有几个带有圆角的按钮,但是这些按钮也显示浅灰色背景。

有指针吗?示例代码将不胜感激。

circular button, code below

let connectButton = NSButton.init(title: NSLocalizedString(" ", comment: "OnButtonAccessibility"), target: self, action: #selector(toggle))
connectButton.wantsLayer = true
connectButton.isBordered = false
connectButton.layer?.masksToBounds=true
if #available(OSX 10.13, *) {
  connectButton.layer?.maskedCorners=[.layerMaxXMaxYCorner]
} else {

connectButton.layer?.backgroundColor = NSColor.blue.cgColor
connectButton.layer?.cornerRadius=80
connectButton.layer?.borderColor=DarkerBlue.cgColor
connectButton.layer?.borderWidth=3
(connectButton.cell as! NSButtonCell).isBordered=false
(connectButton.cell as! NSButtonCell).backgroundColor=NSColor.clear
connectButton.isTransparent=true
connectButton.frame=CGRect(x: 80, y: self.view.frame.size.height-260, width: 160, height: 160)
connectButton.tag=1002
self.view.addSubview(connectButton)

1 个答案:

答案 0 :(得分:0)

看来您至少必须触摸NSButton.cell才能使其符合按钮样式。所使用的backgroundstyle似乎没有什么不同,因为您已填充或包含按钮。

connectButton.cell?.backgroundStyle=NSView.BackgroundStyle.dark