获得焦点后NSButton背景透明
NSButton background transparent after getting focus
我在透明弹出窗口的视图中遇到一些无边框 NSButton 问题。首次打开弹出窗口时,按钮看起来完全正常,但是当弹出窗口(或其中的视图)获得焦点时,背景变得透明。
第一次打开时,它看起来像这样(应该如此):
但是当弹出窗口获得焦点时,按钮最终会变成这样:
,其中背景是透明的,弹出窗口下方的内容是可见的。
我已经尝试了以下散布在网络上的方法:
optionsButton.setButtonType(.MomentaryChangeButton)
optionsButton.cell?.showsFirstResponder = false
let bColor = NSColor(red: 230.0/255.0, green: 230.0/255.0, blue: 230.0/255.0, alpha: 1.0)
(optionsButton.cell as! NSButtonCell).backgroundColor = bColor
optionsButton.layer?.backgroundColor = bColor.CGColor
(optionsButton.cell as! NSButtonCell).showsStateBy = .PushInCellMask
(optionsButton.cell as! NSButtonCell).highlightsBy = .ContentsCellMask
optionsButton当然是右边那个。我只尝试使用上面的一些代码,但不幸的是,它的每个变体似乎都无法修复它!
有人知道如何避免这种情况吗?有人知道为什么垃圾桶按钮没有同样的问题吗?
提前致谢!
以下针对 NSTextField 进行了测试,但也适用于按钮。
将 NSButton
的 appearance
属性 设置为 NSAppearanceNameAqua
。因为如果按钮不尝试做一些奇怪的活力效果,他就不会把事情搞砸。标签看起来还是一样,奇怪的效果消失了。
我在代码中的话:
self.button.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
更新:SWIFT 4
以下针对 NSButton 进行了测试:
NameofButton.appearance = NSAppearance(named: NSAppearance.Name.aqua)
我在透明弹出窗口的视图中遇到一些无边框 NSButton 问题。首次打开弹出窗口时,按钮看起来完全正常,但是当弹出窗口(或其中的视图)获得焦点时,背景变得透明。
第一次打开时,它看起来像这样(应该如此):
但是当弹出窗口获得焦点时,按钮最终会变成这样:
我已经尝试了以下散布在网络上的方法:
optionsButton.setButtonType(.MomentaryChangeButton)
optionsButton.cell?.showsFirstResponder = false
let bColor = NSColor(red: 230.0/255.0, green: 230.0/255.0, blue: 230.0/255.0, alpha: 1.0)
(optionsButton.cell as! NSButtonCell).backgroundColor = bColor
optionsButton.layer?.backgroundColor = bColor.CGColor
(optionsButton.cell as! NSButtonCell).showsStateBy = .PushInCellMask
(optionsButton.cell as! NSButtonCell).highlightsBy = .ContentsCellMask
optionsButton当然是右边那个。我只尝试使用上面的一些代码,但不幸的是,它的每个变体似乎都无法修复它!
有人知道如何避免这种情况吗?有人知道为什么垃圾桶按钮没有同样的问题吗?
提前致谢!
以下针对 NSTextField 进行了测试,但也适用于按钮。
将 NSButton
的 appearance
属性 设置为 NSAppearanceNameAqua
。因为如果按钮不尝试做一些奇怪的活力效果,他就不会把事情搞砸。标签看起来还是一样,奇怪的效果消失了。
我在代码中的话:
self.button.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
更新:SWIFT 4
以下针对 NSButton 进行了测试:
NameofButton.appearance = NSAppearance(named: NSAppearance.Name.aqua)