画面上のすべてのデスクトップ(以前の「スペース」)の壁紙を変更したいと思います。 OS X 10.6では、壁紙の設定を可能にするNSWorkspaceのカテゴリがありますが、この機能を使用すると、現在のデスクトップの壁紙だけが変更され、他のすべてのデスクトップは変更されません。OS X 10.7 Lionのすべてのデスクトップで壁紙を変更しますか?
次に、デスクトップの設定plistを見て、私が望む変更(基本的に新しいイメージファイルパスを設定)を反映するように変更するクラスを書きました。新しいファイルが保存された後、私はcom.apple.desktop "BackgroundChanged"通知を送った。あなたが私が何を話しているのか分からなければ、これは10.6日前に壁紙を変えた方法だった。最初はこれは何も結果をもたらさなかったので、userInfo辞書としての "nil"の代わりに、あなたが設定した壁紙を変更したときにAppleと同じuserInfo辞書を送りました(アプリ内の通知を購読して壁紙を変更しますあなたはそれがどのように見えるかを見るでしょう)。 Duckが何らかの理由で通知を送ったときにLuckが私を助け、Dockがクラッシュしてリロードしたときに、設定ファイルから設定をロードして変更を表示しました。
これは10.7.1で動作しますが、ドックのクラッシュと再読み込みのユーザーエクスペリエンスが悪くなく、b)将来のリリースでも動作することが保証されているパスを使用します。バグを悪用しようとしても、安定したパスのようには見えません。
すべてのデスクトップの壁紙を変更する方法に関する他のアイデアはありますか?私はまた、NSWorkspaceの壁紙カテゴリの現在の動作が意図されているのか、バグであるのか不明ですが、壁紙の設定パネルの動作から判断すると、前者が当てはまるようです。
ありがとうございましたvalexa、ActiveSpaceChanged通知は、実際に私が今まで使っていたものです。動作しますが、1つのコマンドでそれらをすべて設定できるだけでなく、エレガントではありません – Robin