Изменение изображения рабочего стола в 10.6.x - PullRequest
2 голосов
/ 06 октября 2009

У меня есть приложение, которое меняет фон рабочего стола для пользователей на основе указанных файлов.

В 10.4 и 10.5 это работало довольно хорошо, но Apple, похоже, изменила некоторые системные уведомления, что означает, что написанный мной код больше не работает.

Мне было интересно, видел ли кто-нибудь какие-либо примеры или разработал, как изменить изображение? Кажется, они все еще используют список свойств com.apple.desktop, но уведомление об изменении файла, похоже, больше не работает.

I использовал для уведомления ОС о новом фоне с помощью этой команды:

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

Есть идеи?

Ответы [ 2 ]

7 голосов
/ 06 октября 2009

Ну, вы использовали недокументированный API. Не удивительно, что он перестал работать ...

10.6 имеет новый публичный API на NSWorkspace. В частности метод -setDesktopImageURL:forScreen:options:error:.

1 голос
/ 09 октября 2009

Вы также можете вызвать Applescript, чтобы изменить изображение обоев.

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

И вы можете использовать объект NSAppleScript для вызова Applescript с вашим приложением Cocoa.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...