我希望NSVisualEffectView
使用黑暗的活力,但我觉得在某些情况下效果太淡了,所以我想让背景变暗。
以下是一个示例应用,使用NSBox
视图提供更暗的背景。
我们可以看到NSBox
'主要'外观设法覆盖背景,按钮愉快地坐在上面。但是,在具有自定义外观的NSBox
上,按钮会显示为“剪切”字样。通过背景到下面的视觉效果视图。
我已经尝试了对NSVisualEffectView
进行子类化并覆盖-drawRect:
以使用不同的颜色填充它,结果是相同的。
有没有办法将鲜明的控件叠加在其他视图上?
答案 0 :(得分:1)
视觉效果视图似乎有两个重要的层:背景和色调。将这两个设置为" right"黑色似乎可以解决这个问题,但是你必须在边界发生变化时随时做到这一点。
for (CALayer *sublayer in self.vibrancyView.layer.sublayers) {
if ([sublayer.name isEqualToString:@"Backdrop"]) {
NSLog(@"Backdrop: %@", sublayer.backgroundColor);
sublayer.backgroundColor = [NSColor colorWithRed:0 green:0 blue:0 alpha:0.45].CGColor;
} else if ([sublayer.name isEqualToString:@"Tint"]) {
NSLog(@"Tint: %@", sublayer.backgroundColor);
sublayer.backgroundColor = [NSColor colorWithRed:0 green:0 blue:0 alpha:1].CGColor;
}
}