在Safari下载窗口中创建“停止进度”按钮的最佳方法是什么?

时间:2010-06-10 20:03:09

标签: cocoa macos

Apple Human Interface Guidelines说:

  

在“下载”窗口中,Safari使用独立的NSImageNameStopProgressFreestandingTemplate图像内嵌进度指示器,以允许用户停止正在进行的下载。

Safari Downloads Window http://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/art/sys_freestanding.jpg

NSImage documentation说了类似的话。但是,使用NSButtonNSImageNameStopProgressFreestandingTemplate创建NSShadowlessSquareBezelStyle会产生以下内容:

NSImageNameStopProgressFreestandingTemplate

不幸的是,此按钮与内置Mac OS X应用程序的“停止进度”按钮不匹配:

  1. 它比Finder和Safari中的按钮暗得多,而且比iCal中的按钮暗一些。
  2. 在翻转/悬停时不会像Finder,Safari和iCal中的按钮那样改变颜色。
  3. 我是否缺少NSButton设置会使系统提供的图像看起来“正确”?

    如果失败了,使用NSImageNameStopProgressFreestandingTemplate并查看“错误”或写一个按钮子类并捆绑一些TIFF会更好吗,大多数应用程序(包括Apple的)似乎都在做什么?

2 个答案:

答案 0 :(得分:2)

官方回答,从Mac OS X 10.7开始,似乎是使用NSImageNameStopProgressFreestandingTemplateNSInlineBezelStyledocumentation说:

  

内嵌边框样式包含坚实的圆形边框背景。它可用于在大纲视图中创建“未读”指示符,或在tableview中创建另一个内联按钮,例如下载面板中的停止进度按钮。

这会产生一个比Safari更暗的按钮,但不像其他边框样式那样暗。它不会在悬停时改变颜色,但也许苹果正在逐步淘汰。

答案 1 :(得分:1)

[NSImage setTemplate:]上的文档建议改变alpha以确定它的暗度。但是,当您不直接绘制图像时,我不确定该怎么做。我没有看到比编写自己的NSButton子类或NSButtonCell更好的方法。