无法使用NSPopover禁用背景模糊

时间:2015-01-10 13:18:31

标签: cocoa osx-yosemite nspopover

在10.10跑步时,我没有运气试图让NSPopover恢复到10.9的外观。我有一个附加到用户拖动的NSView的弹出窗口。弹出必须透明,以便用户仍然可以看到其他UI元素的位置。

一切都在10.9以下工作,但现在在10.10以下,Apple的新噱头模糊,我似乎无法回到10.10的相同外观(除非像我一样,用户在系统偏好设置中启用了“降低透明度”>可访问性。我无法对最终用户强制执行首选项更改!)。

尝试过:

self.draggingPopover.appearance = NSPopoverAppearanceHUD;
self.popoverView.superview.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
self.popoverView.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];

这些都不会对popover在屏幕上的外观产生任何影响。

在我的视图子类中的

drawRect用我选择的颜色填充背景但忽略了alpha值,而popover是不透明的。

同样我可以使用self.popoverView.layer.backgroundColor = ...,但也会忽略alpha值!

2 个答案:

答案 0 :(得分:1)

使用:

[popover setAppearance:(NSPopoverAppearance)[NSAppearance appearanceNamed:NSAppearanceNameAqua]];

答案 1 :(得分:0)

您也可以在故事板中设置Aqua外观。选择NSPopover的内容视图并使用此设置:

enter image description here