所以我有一个NSVisualEffectView
与一个按钮和一些图标相连。此视图的material
原来等于NSVisualEffectMaterialDark
,换句话说,是充满活力的黑暗。
我写的以下代码是假设来执行以下操作:
1)检测视图的素材是NSVisualEffectMaterialDark
还是NSVisualEffectMaterialLight
2)将BOOL isDark
分别更改为YES / NO
3)根据当前视图,将视图的appearance
更改为material
,从暗到亮/从浅到暗。
问题在于,当我运行应用程序并单击按钮时,NSVisualEffectView
的颜色从饱和的黑暗变为较小的颜色,而不是预期的光。
如何解决此问题并防止其发生?
注意: NSVisualEffectView
的名称为sideBar
,按钮的名称为lightButton
,isDark
最初设为{{1} }}
这是我的代码:
YES
答案 0 :(得分:0)
事实证明,我写的代码有点问题,正如预期的那样。
NSVisualEffectView
没有检查上述材料,NSVisualEffectMaterialDark
或NSVisualEffectMaterialLight
,因此两个条件均为假。似乎它选择将材料设置为不同类型的暗,以便材料最终匹配并能够正确地比较它们。
通过声明材料(NSVisualEffectMaterialDark
和NSVisualEffectMaterialLight
),在- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
中我能解决问题,我必须点击两次按钮才能实际工作。
修改强>
事实证明还有其他我不知道的材料,它们恰好是理想的材料。
这些是NSVisualEffectMaterialMediumLight
和NSVisualEffectMaterialUltraDark
。