Поменять обои на всех рабочих столах в OS X 10.7 Lion?

Я хотел бы изменить обои всех рабочих столов (ранее "пробелы") на экране. Начиная с OS X 10.6, есть категория для NSWorkspace, которая позволяет устанавливать обои, однако, когда я использую эту функцию, меняются только обои текущего рабочего стола, а все остальные рабочие столы остаются неизменными.

Затем я посмотрел на список параметров рабочего стола и написал класс, который модифицирует его, чтобы отразить изменения, которые я хочу (в основном, установить новый путь к файлу изображения). После того, как новый файл был сохранен, я отправил com.apple.desktop уведомление «BackgroundChanged» - Google, если вы не знаете, о чем я говорю, именно так люди меняли обои за 10.6 дней. Сначала это не дало никаких результатов, поэтому вместо «nil» в качестве словаря userInfo я отправил точно такой же словарь userInfo, как Apple, когда вы меняете обои в настройках (подпишитесь на уведомление в приложении и измените обои). в настройках приложения вы увидите как это выглядит). Удача помогла мне в этом, когда я отправил уведомление таким образом по какой-то причине, док-станция сломалась, и когда он перезагрузился, он загрузил настройки из файла настроек, таким образом отображая мои изменения.

Это работает на 10.7.1, однако, я бы а) скорее не испытал неудачного пользовательского опыта сбоя и перезагрузки дока, и б) использовал путь, который более или менее гарантированно будет работать и в будущих версиях. Использование ошибки не похоже на стабильный путь.

Любые другие идеи о том, как изменить обои на всех рабочих столах? Я также не уверен, нацелено ли текущее поведение категории обоев NSWorkspace или является ошибкой, однако, судя по поведению панели настроек обоев, кажется, что первое имеет место.

Ответы на вопрос(1)

Ваш ответ на вопрос