NSToolbarItemGroup没有间距

时间:2015-07-06 11:30:02

标签: cocoa nstoolbar nstoolbaritem

我正在使用NSToolbarItemGroup将一组NSToolbarItem组合在一起。目前在组中的每个项目之间有2pt的空间,理想情况下,我希望它们在视觉上完全合并,类似于NSSegmentedControl。

检查Mail应用程序后,看起来他们正在使用包含NSSegmentedControl的自定义NSToolbarItem。我过去曾尝试过这个,但我无法弄清楚如何在每个组件下获得单个标签,并让每个组件在“溢出”菜单中单独显示。

当前看:

enter image description here

期望的外观:

enter image description here

我知道'居中'被裁剪,这只是一个快速实施。

2 个答案:

答案 0 :(得分:1)

我建议您使用NSSegmentControl添加到NSToolbarItem,如下图所示。

enter image description here image

按钮下方需要一些标签(如“回复”等)。 要实现此目的,您可以设置NSToolbarItem label-property并在单词之间使用空格。

attributes inspector

答案 1 :(得分:1)

您可以将NSToolbarItem对象添加到工具栏,然后像这样设置NSViewController(使用Swift):

runStatus.view = RunStatusView()

其中" runStatus"是NSToolbarItem的@IBOutlet的名称," RunStatusView"是一个NSView对象,在drawRect方法上有一个覆盖。您还可以指定NSView的宽度和高度;例如,强制宽度恒定为125:

runStatus.minSize = NSSize(width: 125, height: 32)
runStatus.maxSize = NSSize(width: 125, height: 32)

这可以使NSToolbar项目看起来更接近,具体取决于您在它们上绘制的内容。

最后,如果你仍然无法得到你想要的东西,那么让按钮组成为一个NSToobarItem,并在" RunStatusView" (使用上面的例子)绘制它你想要的,并覆盖mouseDown事件(也在" RunStatusView")以查看用户正在点击的确切位置。然后有一个NSToolbarItem基本上就像多个按钮一样,你可以完全控制并且可以让它按照你想要的方式运行。