2009-10-06 3 views
2

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

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

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

Я использовал уведомить ОС нового фона, используя эту команду:

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

Любые идеи?

ответ

7

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

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

+0

Я не удивлен, что он перестает работать, просто интересно, как это исправить: D Спасибо за сообщение, я попробую и посмотрю, как я пойду. – d2kagw

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 для вызова Applescript с вашим приложением Cocoa.

Смежные вопросы