首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在prefPane外部设置CFPreferences

在prefPane外部设置CFPreferences
EN

Stack Overflow用户
提问于 2014-07-31 18:15:19
回答 1查看 238关注 0票数 1

我正在尝试构建一个设置CFPreferences的应用程序,如下所示:

代码语言:javascript
复制
CFPreferencesSetValue((CFStringRef)@"AppleInterfaceStyle", NULL, kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesCurrentHost);

然后发布一个通知,让系统知道它已经被更改了。

代码语言:javascript
复制
CFNotificationCenterPostNotification(CFNotificationCenterGetDistributedCenter(), (CFStringRef)@"AppleInterfaceThemeChangedNotification", NULL, NULL, YES);
    [defaults setObject:@"light" forKey:@"interfaceStyle"];

我在一个普通的Mac App上试过了,它不能工作,但如果我把它放在prefPane里,它就能工作。有谁有什么建议吗?

这是特定于Yosemite的,并将主题设置为light (更改菜单栏和停靠)。

EN

回答 1

Stack Overflow用户

发布于 2014-10-13 01:06:43

在dispatch_async中封装通知代码对我来说很有效。不过,我不知道为什么。

代码语言:javascript
复制
dispatch_async(dispatch_get_main_queue(), ^{
    CFNotificationCenterPostNotification(CFNotificationCenterGetDistributedCenteR(), 
   (CFStringRef)@"AppleInterfaceThemeChangedNotification", NULL, NULL, YES);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25056325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档