开发者

Changing the desktop image in 10.6.x

I have an application that changes the desktop background for users based on files they specify.

It worked quite well in 10.4 and 10.5, but Apple seems to have changed some system notifications which means the code I had written no longer works.

I was wondering if anyone has seen any examples, or have worked out how to change the image? It seems they still use the com.apple.desktop property list, but the notification of the file change doesn't seem to work anymore.

I used to notify the OS of the new background using this command:

开发者_高级运维
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"com.apple.desktop" object:@"BackgroundChanged"];

Any ideas?


Well you were using undocumented API. Not surprising it stopped working…

10.6 has new public API on NSWorkspace. In particular the -setDesktopImageURL:forScreen:options:error: method.


You can also call an Applescript to change the wallpaper image.

tell application "Finder"
    set image_file to POSIX file "/Users/user/Pictures/wall.jpg"
    set desktop picture to image_file
end tell

And you can use an NSAppleScript object to call Applescript with your Cocoa application.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜