Итак, у меня есть NSVisualEffectView
, связанный с кнопкой и некоторыми значками. material
этого представления изначально равно NSVisualEffectMaterialDark
, другими словами, Vibrant Dark.
Следующий код, который я написал, предполагается для выполнения следующих действий:
1) Определите, является ли материал представления NSVisualEffectMaterialDark
или NSVisualEffectMaterialLight
2) Измените BOOL isDark
на YES/NO соответственно
3) Измените appearance
представления, другими словами, material
, с Dark на Light / Light на Темный в зависимости от текущего вида.
Проблема в том, что когда я запускаю приложение и нажимаю кнопку, цвет 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;
}
}