2009-10-06 35 views
2

我有一个应用程序根据用户指定的文件更改桌面背景。在10.6.x中更改桌面图像

它在10.4和10.5中工作得很好,但是Apple似乎改变了一些系统通知,这意味着我写的代码不再有效。

我想知道是否有人看过任何示例,或者已经制定了如何更改图像? 看来他们仍然使用com.apple.desktop属性列表,但文件更改通知似乎不再有效。

通知使用此命令的新背景的OS:

[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"com.apple.desktop" object:@"BackgroundChanged"]; 

任何想法?

回答

7

那么你使用的是未公开的API。毫不奇怪,它停止工作...

10.6在NSWorkspace上有新的公共API。特别是-setDesktopImageURL:forScreen:options:error:方法。

+0

我不惊讶它停止工作,只是想知道如何解决它:D 感谢您的帖子,我会尝试它,看看我怎么去。 – d2kagw 2009-10-06 13:36:05

1

您还可以调用Applescript来更改壁纸图像。

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

而且您可以使用NSAppleScript对象与您的Cocoa应用程序调用Applescript。