NSButton устанавливает цвет фона macOS 10.12
Я имею NSButtons
созданный в раскадровке, для которого я хотел бы изменить цвет фона. Я искал SO и Google, но на самом деле ни одно из решений не работает в моем проекте или даже в простом тестовом проекте. Я пробовал:
- Настройка button.layer.backgroundColor (в том числе с импортом QuartzCore и без него и настройка
wantsLayer
). - Получение NSButtonCell из NSButton и изменение цвета фона. Я пробовал это с рамкой, без рамки, прозрачным и т. Д. Без изменения цвета фона. Я пытался перейти от квадрата к градиенту, не повезло.
1 ответ
Это должно быть ошибка в macOS. Я могу заставить NSButtonCell отвечать на backgroundColor просто путем создания подкласса с классом EMPTY с одним переопределением EMPTY:
class ColorButtonCell: NSButtonCell {
override func draw(withFrame cellFrame: NSRect, in controlView: NSView) {
super.draw(withFrame: cellFrame, in: controlView)
}
}
При использовании этого подкласса все работает как положено!