Настройка фонового изображения отдельных рабочих столов в OSX Lion - PullRequest
4 голосов
/ 15 сентября 2011

У меня есть небольшой скрипт PyObjC, чтобы изменить изображения рабочего стола на определенный файл (который извлекается из flickr).Он устанавливает разные изображения для каждого экрана, если у вас есть несколько.В Snow Leopard это работало нормально, но в Lion вы можете установить фоновые изображения для отдельных рабочих столов (формально Spaces), тогда как в Snow Leopard все Spaces использовали один и тот же фон.

В настоящее время я использую setDesktopImageURL:forScreen:options:error: on [NSWorkspace sharedWorkspace], но это только устанавливает изображение на текущем пространстве / рабочем столе.

Есть идеи, как я могу перебирать рабочие столы и устанавливать изображения на каждом?Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

Хотя я не думаю, что для этого есть поддерживаемый API, вы должны сделать это с помощью утилиты командной строки defaults.Изображения рабочего стола хранятся отдельно для каждого пространства в ~ / Library / Preferences / com.apple.desktop.plist и могут быть прочитаны и записаны, как описано в ответе Клинтона Блэкмора здесь: Как программно изменить фонв Mac OS X? .Очевидно, вам придется немного изменить команду, чтобы изменить словарь пробелов вместо значения по умолчанию, но в остальном она должна работать так же.

2 голосов
/ 15 сентября 2011

Вы можете получить все экраны как NSArray, используя [NSScreen screens], а затем выполнить итерацию по этому массиву, устанавливая изображение рабочего стола для каждого экрана. У Apple есть пример кода: http://developer.apple.com/library/mac/#samplecode/DesktopImage/Introduction/Intro.html#//apple_ref/doc/uid/DTS40008860

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