如何使用Xcode工具栏中的菜单进行分段控制

时间:2015-09-26 11:23:18

标签: xcode macos cocoa nssegmentedcontrol segmentedcontrol

我想在我的OS X应用程序中添加带有Xcode工具栏菜单的分段控件。它将在三个屏幕之间切换,并且还需要以菜单的形式在每个屏幕中显示一些选项。picture of what I need to implement

标准分段控件不允许"选择一个"我添加菜单时的模式。

2 个答案:

答案 0 :(得分:3)

此功能是内置的。在代码中,您只需使用-setMenu:forSegment:(或NSSegmentedControl)的NSSegmentedCell方法即可。在Interface Builder中,只需从Object库中拖出一个菜单并将其放在相应的段上。

要允许在单击时选择具有菜单的片段,您可能需要使用NSSegmentedControl的自定义子类覆盖-startTrackingAt:inView:,以便在调用super之前将片段设置为选中。

答案 1 :(得分:1)

我能够很容易地完成你想要的东西。

我将分段控件的trackingMode设置为NSSegmentSwitchTrackingMomentary

然后我为分段控件创建了一个IBAction:

- (IBAction)selectionChanged:(NSSegmentedControl *)sender {
    [NSMenu popUpContextMenu:[NSApp mainMenu] withEvent:[NSApp currentEvent] forView:sender];
}

然后它看起来如下:

enter image description here