【发布时间】:2010-08-20 18:08:47
【问题描述】:
cocoa/objective-c中如何改变桌面图片?我试过使用默认值,但有很多错误。
NSArray *args=[NSArray arrayWithObjects:@"write",@"com.apple.desktop", @"Background", @"'{default = {ImageFilePath = \"~/desktop.jpg\";};}'", nil];
NSTask *deskTask=[[NSTask alloc] init];
[deskTask setArguments: args];
[deskTask setLaunchPath:@"/usr/bin/defaults"];
[deskTask launch];
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"com.apple.desktop" object:@"BackgroundChanged"];
该命令在终端中成功运行。我不需要任何人确切地告诉我该怎么做,但我想要一些见解。
编辑:我的操作系统是 10.4.11
【问题讨论】:
-
那么,您遇到了什么错误?此外,在实际更改值之前,您不应发布通知;这可能还没有发生,因为您在开始任务后立即发布它。您应该先等待任务完成。 (当你完成任务时不要忘记释放它。)
-
没有错误,但 plist 文件 (com.apple.desktop) 现在有一个元素(背景)包含 {default = {ImageFilePath = "~/desktop.jpg";};}跨度>
-
plist 文件应该有一个嵌套的 ImageFilePath 元素(在默认元素内),内容为“~/desktop.jpg”。
标签: objective-c cocoa unix terminal