NSAppearance决定着AppKit如何渲染每个UI控件的效果,尤其是与颜色或者图片相关的部分.....在macOS 10.14之前我们对于一个控件的颜色值经常使用硬编码方式,因此当appearance变化时,这些硬编码的色值就难以适应了....当Appearance变化时,关于NSColor的适配苹果官方给出两种简单并且易于实现的方案:
使用带有语义的Color:
那么问题来了,到底什么是带有语义的Color呢?...,会Appkit会自动调整Image进行适配):
Screen resolution(屏幕分辨率):
Appkit会自动根据当前屏幕的解析度选取最佳的image进行显示
Light and dark...切换时,应避免耗时操作
当切换系统的Appearance时,AppKit会同时更新UI控件,这部分工作通常都是自动完成的.但有时也会调用开发者编写的代码,例如你使用了NSImage的draw handler