从 OS X 10.8 Mountain Lion 开始,Safari 在下载文件时会创建一个动态图标,如下所示:
:
进度条显示进度,单击左上角的关闭按钮会告诉 Safari 停止下载。
有没有办法让第 3 方应用程序创建这种图标?
我想没有与 App Store 兼容的方法可以做到这一点,但我很好奇如何做到这一点/Safari 是如何做到这一点的,只是为了感兴趣。
从 OS X 10.8 Mountain Lion 开始,Safari 在下载文件时会创建一个动态图标,如下所示:
:
进度条显示进度,单击左上角的关闭按钮会告诉 Safari 停止下载。
有没有办法让第 3 方应用程序创建这种图标?
我想没有与 App Store 兼容的方法可以做到这一点,但我很好奇如何做到这一点/Safari 是如何做到这一点的,只是为了感兴趣。
我认为它是其中的一部分,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 实现Foundation
:https ://developer.apple.com/library/mac/#documentation/AppKit/Reference/NSFileWrapper_AppKitAdditions/NSFileWrapperApplicationKitAdditions.html
编辑:这就是你可以有一个进度条的方式。要制作关闭按钮,您需要NSView
对图标的引用,就像您可以使用停靠图标一样。
编辑 2:WebKit 浏览器也这样做(不仅仅是 Safari),所以如果你挖掘源代码,你可能会找到它。
编辑 3:我认为它是由NSURLDownload
. 如果您进行了真正动态生成下载内容的虚假下载,您可以自己使用该样式。不过,我不相信可以制作任意可点击的图标。