Apple Human Interface Guidelines说:
在“下载”窗口中,Safari使用独立的NSImageNameStopProgressFreestandingTemplate图像内嵌进度指示器,以允许用户停止正在进行的下载。
NSImage documentation说了类似的话。但是,使用NSButton
和NSImageNameStopProgressFreestandingTemplate
创建NSShadowlessSquareBezelStyle
会产生以下内容:
不幸的是,此按钮与内置Mac OS X应用程序的“停止进度”按钮不匹配:
我是否缺少NSButton
设置会使系统提供的图像看起来“正确”?
如果失败了,使用NSImageNameStopProgressFreestandingTemplate
并查看“错误”或写一个按钮子类并捆绑一些TIFF会更好吗,大多数应用程序(包括Apple的)似乎都在做什么?
答案 0 :(得分:2)
官方回答,从Mac OS X 10.7开始,似乎是使用NSImageNameStopProgressFreestandingTemplate
和NSInlineBezelStyle
。 documentation说:
内嵌边框样式包含坚实的圆形边框背景。它可用于在大纲视图中创建“未读”指示符,或在tableview中创建另一个内联按钮,例如下载面板中的停止进度按钮。
这会产生一个比Safari更暗的按钮,但不像其他边框样式那样暗。它不会在悬停时改变颜色,但也许苹果正在逐步淘汰。
答案 1 :(得分:1)
[NSImage setTemplate:]
上的文档建议改变alpha以确定它的暗度。但是,当您不直接绘制图像时,我不确定该怎么做。我没有看到比编写自己的NSButton子类或NSButtonCell更好的方法。