如何以编程方式在OSX桌面墙纸上创建交叉淡入淡出过渡

时间:2013-10-08 02:21:31

标签: objective-c macos cocoa

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

欢迎任何帮助,

谢谢!

2 个答案:

答案 0 :(得分:2)

我可以告诉他们没有办法做这个目标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壁纸(无法弄清楚为什么)。

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

答案 1 :(得分:0)

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

你可以接近一个自定义的NSWindow淡出你或者你使用vash的applescript方式看起来像一个'好'的解决方法。