【发布时间】:2013-12-31 19:26:00
【问题描述】:
我知道如何使用setDesktopImageURL 设置桌面壁纸。但是,我试图弄清楚如何在 OSX 切换墙纸时进行交叉淡入淡出。我需要使用某种中间图像技巧或动画技巧吗?图片1->动画->图片2。
欢迎任何帮助,
谢谢!
【问题讨论】:
-
你有没有想过这个问题?
标签: objective-c macos cocoa
我知道如何使用setDesktopImageURL 设置桌面壁纸。但是,我试图弄清楚如何在 OSX 切换墙纸时进行交叉淡入淡出。我需要使用某种中间图像技巧或动画技巧吗?图片1->动画->图片2。
欢迎任何帮助,
谢谢!
【问题讨论】:
标签: objective-c macos cocoa
据我所知,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 壁纸(不知道为什么)。
正如我告诉你的那样,这只是一个混乱的工作,但也许它可能会有所帮助。
【讨论】:
它们在可可中没有这样的功能
您可以使用淡出的自定义 NSWindow 或使用 vash 的 applescript 方式,这看起来是一个“不错”的解决方法。
【讨论】: