Я хотел бы поменять обои на всех десктопах (ранее "пробелы" ) на экране. Начиная с OS X 10.6, существует категория для NSWorkspace, которая позволяет устанавливать обои, однако, когда я использую эту функцию, только обои текущего рабочего стола меняются, а все остальные рабочие станции остаются неизменными.
Затем я просмотрел планку предпочтений рабочего стола и написал класс, который изменяет его, чтобы отразить изменения, которые я хочу (в основном устанавливают новый путь к файлу изображения). После сохранения нового файла я отправил уведомление com.apple.desktop "BackgroundChanged" - Google, если вы не знаете, о чем я говорю, так это то, как люди меняли обои за 10,6 дней. Сначала это не дало результата, поэтому вместо "nil" в качестве словаря userInfo я отправил точно такой же словарь userInfo, что и Apple, когда вы меняете обои в своих настройках (подпишитесь на уведомление в приложении и измените обои в приложении настроек, и вы увидите, как это выглядит). Удача помогла мне здесь, когда я отправил уведомление таким образом по какой-то причине, Dock разбился, и когда он перезагрузился, он загрузил настройки из файла настроек, отображая мои изменения.
Это работает на 10.7.1, однако я бы а) скорее не имел плохой опыт работы с док-станцией сбой и перезагрузку, и б) использовать путь, который более или менее гарантированно работает в будущих выпусках. Использование ошибки не похоже на стабильный путь.
Любые другие идеи о том, как изменить обои всех настольных компьютеров? Я также не уверен, является ли текущее поведение категории обоев NSWorkspace или ошибка, однако, судя по поведению панели предпочтений обоев, кажется, что это первый случай.