Ada*_*hns 6 macos cocoa nsprogressindicator swift
当我将进度指示器的背景设置为绿色时,它会按预期工作.
代码:
loadingIndicator.wantsLayer = true
loadingIndicator.layer?.backgroundColor = NSColor.greenColor().CGColor
Run Code Online (Sandbox Code Playgroud)
结果:
但是当我将背景颜色设置为白色时,背景颜色保持灰色(而不是变为白色).
代码:
loadingIndicator.wantsLayer = true
loadingIndicator.layer?.backgroundColor = NSColor.whiteColor().CGColor
Run Code Online (Sandbox Code Playgroud)
结果:
为什么将背景颜色设置为白色不起作用,但绿色呢?我该如何纠正这个问题?我在OS X 10.11.4上.
编辑:这显然只有当进度指示器位于以弹出窗口显示的视图内时才会发生.
小智 5
我在 NSPopover 中使用 NSProgressIndicator 时遇到了同样的问题。
我的解决方案是将外观设置为如下所示的弹出框。
popover.appearance = NSAppearance(named: NSAppearanceNameAqua)
Run Code Online (Sandbox Code Playgroud)
我不确定为什么会发生这种情况,但是在设置属性后,我得到了正确的白色背景颜色。
我找到了解决这个问题的方法。NSProgressIndicator 的 CALayer 有一个子图层,显示您所看到的着色背景颜色。隐藏该子层将导致不显示任何背景,并保持微调器可见。
CALayer *layer = [[self popoverProgressIndicator] layer];
CALayer *backgroundLayer = [[layer sublayers] firstObject];
[backgroundLayer setHidden:YES];
Run Code Online (Sandbox Code Playgroud)
我仅在 NSPopover 内部使用此处的解决方案来更改背景时才看到此问题。
| 归档时间: |
|
| 查看次数: |
1418 次 |
| 最近记录: |