我正在写一个小应用程序来改变你的桌面背景。如果用户只使用一个空间,那么一切都很好,但是当他有多个空间时,应用程序只能在当前活动的空间上工作。
我正在使用这段代码
[[NSWorkspace sharedWorkspace] setDesktopImageURL:currentImageURL
forScreen:screenToChange
options:screenOptions
error:&error]
来更改桌面背景,但看起来无法更改另一个空间的背景。
我只找到了几年前的答案,没有人问这个具体的问题。在objective-c中有没有办法做到这一点?
发布于 2014-01-06 14:06:23
Setting the desktop background on all Spaces in Cocoa
如果用户想要为多个空间设置桌面背景,请尝试以下代码。:-
有关更多信息,请访问refer this
NSString* path = @"/Users/abc/Desktop/yourImg.png";
NSUserDefaults* def = [NSUserDefaults standardUserDefaults];
NSMutableDictionary* desktopDict = [NSMutableDictionary dictionaryWithDictionary:[def persistentDomainForName:@"com.apple.desktop"]];
NSMutableDictionary* bgDict = [desktopDict objectForKey:@"Background"];
NSMutableDictionary* spaces = [bgDict objectForKey:@"spaces"];
[spaces enumerateKeysAndObjectsUsingBlock:^(NSString* key, NSMutableDictionary* obj, BOOL *stop) {
[obj enumerateKeysAndObjectsUsingBlock:^(id key, NSMutableDictionary* prefs, BOOL *stop) {
[prefs setObject:path forKey:@"ImageFilePath"];
[prefs setObject:path forKey:@"NewImageFilePath"];
[prefs setObject:@"Never" forKey:@"Change"];
}];
}];
[def setPersistentDomain:desktopDict forName:@"com.apple.desktop"];
https://stackoverflow.com/questions/14586289
复制相似问题