代码之家  ›  专栏  ›  技术社区  ›  Michael Tsai

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

  •  4
  • Michael Tsai  · 技术社区  · 14 年前

    苹果人机界面指南

    < Buff行情>

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

    < /块引用>

    Safari下载窗口http://developer.apple.com/library/mac/documentation/userexperience/conceptive/applehiguidelines/art/sys-freestanding.jpg

    nsimage documentation 表示类似的内容。但是,创建一个 nsbutton using nsImageNameStopprogressFreestandingtemplate and nsShadowlessSsquarebezelstyle products something like this:。

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

    1. 它比finder和safari中的按钮暗得多,比iCal中的按钮略暗。
    2. 它不会像finder、safari和iCal中的按钮那样在翻滚/悬停时改变颜色。

    是否存在将使系统提供的图像看起来“正确”的 nsbutton setting I'm missing?

    如果失败,是使用 nsImageNameStopProgressFreestandingtemplate 并看起来“错误”,还是编写一个按钮子类并捆绑一些TIFF,这是大多数应用程序(包括Apple)似乎都在做的?说:

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

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

    这个 NSImage documentation 说类似的话。但是,创建一个 NSButton 使用 NSImageNameStopProgressFreestandingTemplate NSShadowlessSquareBezelStyle 产生这样的结果:

    NSImageNameStopProgressFreestandingTemplate

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

    1. 它比finder和safari中的按钮暗得多,比iCal中的按钮略暗。
    2. 它不会像finder、safari和iCal中的按钮那样在滚动/悬停时改变颜色。

    有没有 NSButt 我缺少的设置会使系统提供的图像看起来“正确”?

    如果失败,是否更好地使用 nsImageNameStopprogress独立模板 看起来是“错误的”,或者编写一个按钮子类并捆绑一些TIFF,这是大多数应用程序(包括苹果的)都在做的事情?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Michael Tsai    12 年前

    官方的答案,如Mac OS X 10.7,似乎是使用 NSImageNameStopProgressFreestandingTemplate NSInlineBezelStyle . 这个 documentation 说:

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

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

        2
  •  1
  •   JWWalker    14 年前

    关于文档 [NSImage setTemplate:] 建议改变阿尔法来确定它有多暗。但是,我不知道当你不直接画图像的时候怎么做。我认为没有比编写自己的nsbutton子类或nsbuttoncell更好的方法了。