【问题标题】:Setting background image of individual desktops in OSX Lion在 OSX Lion 中设置单个桌面的背景图像
【发布时间】:2011-09-15 10:19:43
【问题描述】:

我有一个小 PyObjC 脚本可以将桌面图像更改为特定文件(从 flickr 获取)。如果您有多个屏幕,它会为每个屏幕设置不同的图像。这在 Snow Leopard 中运行良好,但在 Lion 中,您可以为单个桌面(以前称为 Spaces)设置背景图像,而在 Snow Leopard 中,所有 Spaces 共享相同的背景。

我目前在[NSWorkspace sharedWorkspace] 上使用setDesktopImageURL:forScreen:options:error:,但这只会将图像设置在当前空间/桌面上。

有什么想法可以迭代桌面并在每个桌面上设置图像吗?非常感谢!

【问题讨论】:

    标签: objective-c cocoa osx-lion pyobjc


    【解决方案1】:

    虽然我认为没有支持的 API,但您应该可以使用 defaults 命令行实用程序来实现。桌面图像以每个空间为基础存储在 ~/Library/Preferences/com.apple.desktop.plist 中,并且可以按照 Clinton Blackmore 在此处的回答中所述进行读写:How can I programmatically change the background in Mac OS X?。您显然必须稍微更改命令来修改空格字典而不是默认值,但它应该可以正常工作。

    【讨论】:

    • 我认为这正是我所需要的。我将查找有关该文件结构的一些文档。
    【解决方案2】:

    您可以使用 [NSScreen screens] 将所有屏幕作为 NSArray 获取,然后遍历该数组,为每个屏幕设置桌面图像。苹果有一些示例代码:http://developer.apple.com/library/mac/#samplecode/DesktopImage/Introduction/Intro.html#//apple_ref/doc/uid/DTS40008860

    【讨论】:

    • 不幸的是 [NSScreen 屏幕] 返回每个连接的监视器 1 个屏幕。我可以用它来设置每个显示器的背景,但不能设置单独的空间
    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多