9

从 OS X 10.8 Mountain Lion 开始,Safari 在下载文件时会创建一个动态图标,如下所示:

在此处输入图像描述

进度条显示进度,单击左上角的关闭按钮会告诉 Safari 停止下载。

有没有办法让第 3 方应用程序创建这种图标?

我想没有与 App Store 兼容的方法可以做到这一点,但我很好奇如何做到这一点/Safari 是如何做到这一点的,只是为了感兴趣。

4

1 回答 1

0

我认为它是其中的一部分,NSFileWrapper您也许可以通过 App Store 做到这一点。我不知道。

NSFileWrapper *fw = [[NSFileWrapper alloc] initWithURL:fileURL,
                    // don't memory map, we only want to change the icon
                                               options:NSFileWrapperReadingWithoutMapping 
                                                 error:NULL];

[fw setIcon:updatedIcon];

请注意,icon并且setIcon是该ApplicationKit类别的一部分,而不是主要的 NSFileWrapper 实现Foundationhttps ://developer.apple.com/library/mac/#documentation/AppKit/Reference/NSFileWrapper_AppKitAdditions/NSFileWrapperApplicationKitAdditions.html

编辑:这就是你可以有一个进度条的方式。要制作关闭按钮,您需要NSView对图标的引用,就像您可以使用停靠图标一样。

编辑 2:WebKit 浏览器也这样做(不仅仅是 Safari),所以如果你挖掘源代码,你可能会找到它。

编辑 3:我认为它是由NSURLDownload. 如果您进行了真正动态生成下载内容的虚假下载,您可以自己使用该样式。不过,我不相信可以制作任意可点击的图标。

于 2013-07-09T16:01:51.247 回答