如何在Mac OSX上获取和设置目标c中的壁纸?

时间:2010-07-10 18:41:52

标签: objective-c macos

我正在寻找一种在Mac OS X下获取(并设置)目标c中壁纸的方法。

你有代码/指针吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:11)

对于OSX> = 10.6,请使用NSWorkSpace

对于基于CFPreferences的解决方案,请参阅例如topdraw sources

CFStringRef appID = CFSTR("com.apple.desktop");
CFStringRef bkg   = CFSTR("Background");

// get:
NSDictionary *origBackgroundDict = (NSDictionary)CFPreferencesCopyAppValue(bkg, appID);

// ... 

// set and notify dock:
CFPreferencesSetAppValue(bkg, (CFPropertyListRef)backgroundDict, appID);
CFPreferencesAppSynchronize(appID);
[[NSDistributedNotificationCenter defaultCenter] 
  postNotificationName:@"com.apple.desktop" object:@"BackgroundChanged"];