绘制UI控件时,会自动将当前的appearance赋值给控件的appearance(在当前线程中进行);
NSAppearance会影响 系统字体(font),颜色(color),文本(text),图片...当Appearance变化时,关于NSColor的适配苹果官方给出两种简单并且易于实现的方案:
使用带有语义的Color:
那么问题来了,到底什么是带有语义的Color呢?...适配,苹果官方建议采用根据使用明确场景语义枚举.例如在一个popOver的窗口中,推荐使用NSVisualEffectView.Material.popover,这样系统就根据appearance变化自动选择合适的效果了...时,AppKit会同时更新UI控件,这部分工作通常都是自动完成的.但有时也会调用开发者编写的代码,例如你使用了NSImage的draw handler 方式创建图片对象,又或者使用了KVO监听一个视图或者窗口的...effectiveAppearance属性,因此请需要注意下面几点:
尽可能快的更新UI;
不要执行与appearance变更无关的任务;
appearance变化时AppKit会自动添加过渡效果动画,