所以我有NSVisualEffectView
一个按钮和一些图标。该material
视图的原始等于NSVisualEffectMaterialDark
换句话说,Vibrant Dark。
我编写的以下代码应该执行以下操作:
1) 检测视图的材质是NSVisualEffectMaterialDark
还是NSVisualEffectMaterialLight
2) 将 BOOLisDark
分别更改为 YES/NO
3) 根据当前视图将视图的appearance
,换句话说material
,从 Dark 更改为 Light / Light 更改为 Dark 。
问题是,当我运行应用程序并单击按钮时,NSVisualEffectView
的颜色会从饱和的暗色变为较暗的色,而不是应有的亮色。
我能做些什么来解决这个问题并防止它发生?
注意:的NSVisualEffectView
名称是sideBar
,按钮的名称是lightButton
,isDark
最初设置为YES
。
这是我的代码:
-(IBAction)toggleLighting:(id)sender{
if (self.sideBar.material == NSVisualEffectMaterialDark){
_lightButton.title = (@"Dark Mode");
[_lightButton setImage:[NSImage imageNamed:@"Dark Mode Icon"]];
[_lightButton setAlternateImage:[NSImage imageNamed:@"Dark Mode Icon (Alt)"]];
isDark = YES;
NSLog(@"Changed to Light Theme");
} else if (self.sideBar.material == NSVisualEffectMaterialLight){
_lightButton.title = (@"Light Mode");
[_lightButton setImage:[NSImage imageNamed:@"Light Mode Icon"]];
[_lightButton setAlternateImage:[NSImage imageNamed:@"Light Mode Icon (Alt)"]];
isDark = NO;
NSLog(@"Changed to Dark Theme");
}
if (isDark==YES){
_sideBar.material = NSVisualEffectMaterialLight;
isDark = NO;
} else if (isDark==NO) {
_sideBar.material = NSVisualEffectMaterialDark;
isDark = YES;
}
}