Н.С.Баттон не маскируется до предела - PullRequest
0 голосов
/ 30 июня 2018

Я переношу приложение для iOS в приложение на панели инструментов в OSX. Хотя я использую Swift, объекты довольно разные. Однако у меня есть одна серьезная проблема, которую я не могу преодолеть.

Приведенный ниже код создает NSButton, но я не могу избавиться от серого фона. маска не имеет эффекта. Я пытался маскировать каждый угол по отдельности, без эффекта. Я просто хочу простую круглую кнопку.

У меня также есть несколько кнопок со скругленными углами, однако они также показывают светло-серый фон.

Есть указатели? Пример кода будет оценен.

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 голосов
/ 06 июля 2018

Похоже, что вы должны хотя бы прикоснуться к NSButton.cell, чтобы он соответствовал стилю кнопки. Используемый фоновый стиль, кажется, не имеет значения, если у вас есть кнопка, заполненная или содержащая изображение.

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