5

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

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

当前外观:

在此处输入图像描述

所需外观:

在此处输入图像描述

我知道“居中”正在被剪裁,这只是一个快速实现。

4

2 回答 2

1

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

runStatus.view = RunStatusView()

其中“runStatus”是 NSToolbarItem 的 @IBOutlet 的名称,“RunStatusView”是一个覆盖 drawRect 方法的 NSView 对象。也可以指定NSView的宽高;例如,强制宽度恒定为 125:

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

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

最后,如果你仍然不能完全得到你想要的,那么将按钮组设置为单个 NSToobarItem,并在“RunStatusView”(使用上面的示例)中随意绘制它,并覆盖 mouseDown 事件(也在“RunStatusView”中) ) 以查看用户点击的确切位置。然后有一个 NSToolbarItem 本质上就像多个按钮一样,你可以完全控制它,并且可以让它按照你想要的方式运行。

于 2015-11-16T15:26:38.343 回答
0

我可以建议你在下面的图片中使用NSSegmentControl添加到一个NSToolbarItemlike。

在此处输入图像描述 图片

您需要在按钮下方添加一些标签(例如“回复”等)。为此,您可以设置NSToolbarItemlabel-property 并在单词之间使用空格。

属性检查器

于 2015-07-23T09:28:33.923 回答