2011-09-15 13 views
4

デスクトップイメージを特定のファイル(flickrから取得)に変更するPyObjCスクリプトが少しあります。それは複数の場合、各画面ごとに異なる画像を設定します。これはSnow Leopardでもうまくいきましたが、Lionでは個々のデスクトップ(正式なSpaces)の背景イメージを設定できますが、Snow LeopardではすべてのSpacesが同じ背景を共有していました。OSX Lionの個々のデスクトップの背景イメージを設定する

私は現在、setDesktopImageURL:forScreen:options:error:[NSWorkspace sharedWorkspace]に設定していますが、現在のスペース/デスクトップにのみ画像を設定しています。

どのようにアイデアをデスクトップ上で繰り返し、それぞれのイメージを設定できますか?どうもありがとう!

答えて

2

サポートされているAPIはありますが、defaultsコマンドラインユーティリティを使用して実行できるはずです。デスクトップイメージは、〜/ Library/Preferences/com.apple.desktop.plistにスペース単位で格納され、Clinton Blackmoreの回答:How can I programmatically change the background in Mac OS X?に記述されているように読み書きできます。空白の辞書をデフォルトの代わりに変更するには、明らかにコマンドを少し変更する必要がありますが、そうでない場合は同じように動作するはずです。

+0

これは私が必要とするものです。私はそのファイルの構造についていくつかのドキュメントを探します。 –

2

[NSScreen screens]を使用してすべての画面をNSArrayとして取得し、各画面のデスクトップイメージを設定してその配列を反復処理することができます。 Appleはいくつかのサンプルコードを持っています:http://developer.apple.com/library/mac/#samplecode/DesktopImage/Introduction/Intro.html#//apple_ref/doc/uid/DTS40008860

+1

残念ながら、[NSScreen screens]は、モニタごとに1つの画面を返します。私はそれを使用して各モニターの背景を設定できますが、別々のスペースは設定しません –