深色模式 Mac OS
Dark mode Mac OS
我在发布我的申请时从 Apple 收到了这个错误。我怎么解决这个问题?
我们发现启用深色模式后,菜单栏的额外图标不可见。
我在网上找不到任何东西来定义深色模式...
我在您的代码中看到 cache
一词并进行了一些猜测:
您似乎正在加载图像,然后对其进行处理并存储处理后的图像以备后用。您需要注意一些事项:
首先,确保在制作图像时正确设置当前外观 loading/manipulation。在 drawRect:
和其他一些方法之外,您总是需要跳类似这样的舞蹈:
NSAppearance * savedAppearance = [NSAppearance currentAppearance];
[NSAppearance setCurrentAppearance:someView.effectiveAppearance];
// Do your image/color/drawing stuff.
[NSAppearance setCurrentAppearance:savedAppearance];
请注意外观是"scoped"特定视图!您可以在同一视图层次结构中有不同的外观。
您需要覆盖 NSView
的 viewDidChangeEffectiveAppearance
或 KVObserve 视图的 effectiveAppearance
以获得有关外观变化的通知并做出相应的反应(重新创建您的图标)。
我在发布我的申请时从 Apple 收到了这个错误。我怎么解决这个问题? 我们发现启用深色模式后,菜单栏的额外图标不可见。 我在网上找不到任何东西来定义深色模式...
我在您的代码中看到 cache
一词并进行了一些猜测:
您似乎正在加载图像,然后对其进行处理并存储处理后的图像以备后用。您需要注意一些事项:
首先,确保在制作图像时正确设置当前外观 loading/manipulation。在 drawRect:
和其他一些方法之外,您总是需要跳类似这样的舞蹈:
NSAppearance * savedAppearance = [NSAppearance currentAppearance];
[NSAppearance setCurrentAppearance:someView.effectiveAppearance];
// Do your image/color/drawing stuff.
[NSAppearance setCurrentAppearance:savedAppearance];
请注意外观是"scoped"特定视图!您可以在同一视图层次结构中有不同的外观。
您需要覆盖 NSView
的 viewDidChangeEffectiveAppearance
或 KVObserve 视图的 effectiveAppearance
以获得有关外观变化的通知并做出相应的反应(重新创建您的图标)。