禁用每个NSView的活力

时间:2016-11-19 07:01:21

标签: objective-c macos cocoa

NSPopover内,某些子视图(例如标签,按钮)会自动启用活力。这使得当popover背后的内容为深色时,我的应用看起来非常糟糕,除非用户打开"降低透明度"在系统偏好设置中如果我将popover的内容视图子类化,并将allowsVibrancy设置为false,则会使整个弹出窗口变得半透明,这看起来更好。但是,我认为当完全禁用活力时,我的应用看起来最好。

我的问题是,如何在不对每个NSView子类进行子类化的情况下,如何禁用所有视图的活力?

2 个答案:

答案 0 :(得分:1)

您可以将弹出框设置为使用纯色:

How to change NSPopover background color include triangle part?

答案 1 :(得分:0)

您可以通过设置Popover(或任何其他您想要确保非生动的视图)的外观来实现此目的,以获得NSAppearanceNameAqua外观。例如 popover.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];

否则,默认情况下,弹出框将具有VibrantLight外观。