2012-01-29 80 views
4

我已经在几个应用程序中看到了这个类似于工具栏的UI元素,并且我想知道是否有一个用于这样的元素的标准Cocoa对象。这是什么工具栏样式的可可UI元素?

  • 的Xcode:Xcode's Toolbar
  • ColorSchemer:ColorSchemer's Toolbar
  • 基石:CornerStone's Toolbar

如果标准可可实现不存在的,任何人都可以提出一个很好的开源库?

+0

这些只是具有图像背景的'NSView'上的按钮。 – 2012-01-30 01:10:31

+0

@RobKeniger令人失望,但有道理:)如果您将其作为答案发布,我会接受。 – 2012-01-30 15:01:25

回答

2

在第二个示例中,这些按钮是Interface Builder调用的“渐变按钮”,它具有该外观而不需要背景图像。按钮只是彼此相邻。

在其他示例中,“工具栏”仅仅是一个具有自定义图像背景的普通NSView,具有标准NSButton对象作为子视图。这些按钮的边框被禁用,因此您看到的只是图标。

要获得图标的“插入”外观,按钮图像最有可能是template images。要使图像成为模板图像,只能使用黑色和纯色,并使用Alpha通道。然后您在NSImage对象上调用[image setTemplate:YES]

Apple提供一些pre-canned template images,您可以使用+imageNamed:方法NSImage访问它。

1

在Xcode中的情况下,它被称为IDENavigatorFilterControlBar的私有类,这一继承层次:

IDENavigatorFilterControlBar 
IDEFilterControlBar 
DVTBorderedView 
DVTAutoLayoutView 
NSView 

DVT是由私人开发工具框架中使用前缀。

+0

那真令人失望。但显然必须有一些选择;因为ColorSchemer,ConerStone等无法访问这些私有API。 – 2012-01-29 17:04:10

0

不知道这是你想要的,但你有没有试过Matt Gemmell的MGScopeBar

+0

不是。一个很酷的UI,但根本不是我想要的。 – 2012-01-29 17:03:30