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

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

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

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

swift - NSButton不掩盖边界-LMLPHP

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)

最佳答案

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

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

关于swift - NSButton不掩盖边界,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51116746/

10-12 00:08