【问题标题】:How to create cross-fade transition on OSX desktop wallpaper programmatically如何以编程方式在 OSX 桌面壁纸上创建交叉淡入淡出过渡
【发布时间】:2013-12-31 19:26:00
【问题描述】:

我知道如何使用setDesktopImageURL 设置桌面壁纸。但是,我试图弄清楚如何在 OSX 切换墙纸时进行交叉淡入淡出。我需要使用某种中间图像技巧或动画技巧吗?图片1->动画->图片2。

欢迎任何帮助,

谢谢!

【问题讨论】:

  • 你有没有想过这个问题?

标签: objective-c macos cocoa


【解决方案1】:

据我所知,Objective c 无法做到这一点。 我已经在我的应用程序中使用 osascript 实现了这种效果。 这只是一种解决方法,它是有限的,离完美还很远,但它对我有用。

实际上,您必须使用 osx 中已有的淡入淡出效果。 为此,您必须:
- 将您想要作为壁纸的图片放入文件夹中(仅 1 张图片)
- 将该文件夹设置为桌面壁纸的来源
- 设置偏好自动切换壁纸

当您想要更改图像时,您必须以编程方式将其添加到文件夹中并删除旧图像。操作系统会为您褪色。

设置文件夹:

system("osascript -e 'Tell application \"System Events\" to set pictures folder of current desktop to path/to/folder '")  

设置自动开关:

system("osascript -e 'Tell application \"System Events\" to set picture rotation of current desktop to 1'")

您甚至可以在应用程序中设置延迟以等待图像切换,然后调用最后一个脚本将旋转设置为 0(禁用它),但有时这会将您的桌面更改为默认的 osx 壁纸(不知道为什么)。

正如我告诉你的那样,这只是一个混乱的工作,但也许它可能会有所帮助。

【讨论】:

    【解决方案2】:

    它们在可可中没有这样的功能

    您可以使用淡出的自定义 NSWindow 或使用 vash 的 applescript 方式,这看起来是一个“不错”的解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多