对于MacOS 10.14之后的暗黑主题,会默认影响App的外观效果。系统会自动选择任何与macOS 10.14或更高版本的SDK相关的应用程序,让它们适配亮和暗的主题模式。
如果控件设置的颜色为系统提供的控件颜色或者背景,那么在暗黑模式下就有可能发生颜色变化,如果没有适配,就会产生适配问题。
禁用
全局禁用
在plist
文件中添加NSRequiresAquaSystemAppearance
键(值为YES)来禁用。plist文件。将此键设置为YES会导致系统忽略用户的偏好,并始终将一个亮的外观应用到应用程序中。
单个视图禁用
当你想要一个AppKit视图或窗口采用一个特定的外观时,分配一个自定义的NSAppearance对象给它。
通常,应用程序对象继承系统外观,并将该外观传播到所有窗口和面板,而视图则从父视图或窗口继承其外观。你可以修改单个视图的外观效果为亮
或者使用代码修改:
class MyContentView : NSView {
func adoptAquaAppearance(