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

任何帮助都将受到欢迎,

谢谢!

最佳答案

据我所知,无法做到这一点。
我已经在我的应用中使用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墙纸(无法找出原因)。

正如我告诉您的那样,这只是一个杂乱的工作,但也许会有所帮助。

关于objective-c - 如何以编程方式在OSX桌面墙纸上创建淡入淡出过渡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19238019/

10-13 02:26