sac*_*sac 22 osx-yosemite osx-yosemite-beta
在Yosemite中启用暗模式时,必须更改状态栏应用程序图标.如何检测是否启用了暗模式?是否有相同的通知?
是否更好地显示另一个图像或更改现有图像的alpha值?需要输入哪个是更好的方法?
ber*_*ign 52
您应该尽可能使用模板图像,因为它们允许您的UI自动适应系统所做的更改(至少在系统中没有错误的时候...... http://indiestack.com/2014/10/yosemites -dark-mode /).但是,如果您可能在状态栏中使用自定义视图而无法利用模板图像,则可以手动检查暗模式并相应地调整UI.
您可以通过从用户的全局首选项中检索密钥来检查是否启用了暗模式,如下所示:
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] persistentDomainForName:NSGlobalDomain];
id style = [dict objectForKey:@"AppleInterfaceStyle"];
BOOL darkModeOn = ( style && [style isKindOfClass:[NSString class]] && NSOrderedSame == [style caseInsensitiveCompare:@"dark"] );
Run Code Online (Sandbox Code Playgroud)
至少对于Yosemite的第一个版本,当禁用暗模式时键不存在,但是当启用暗模式时,该键存在并返回字符串值@"Dark".我添加了不区分大小写的比较,因为我看到偏好键在系统发布之间改变了它们的情况,这增加了一点保险.
要监视设置的当前状态,请注册为分布式通知的观察者(在适当的方法中),如下所示:
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(darkModeChanged:) name:@"AppleInterfaceThemeChangedNotification" object:nil];
Run Code Online (Sandbox Code Playgroud)
并且您创建了一个方法来充当通知的消息选择器,如下所示:
-(void)darkModeChanged:(NSNotification *)notif
{
NSLog(@"Dark mode changed");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6463 次 |
| 最近记录: |