这个功能是内置的。在代码中,你可以直接使用NSSegmentedControl(或NSSegmentedCell)的-setMenu:forSegment:方法。在Interface Builder中,只需从Object库中拖动菜单并将其放在适当的段上。 为了允许具有菜单的段在被单击时被选中,您可能需要使用NSSegmentedControl的自定义子类,它重写-startTrackingAt:inView:以在调用super之前将段设置为选定状态。
我能很容易地完成你所需要的任务。我将分段控件的trackingMode设置为NSSegmentSwitchTrackingMomentary。然后我为分段控件创建了一个IBAction:- (IBAction)selectionChanged:(NSSegmentedControl *)sender { [NSMenu popUpContextMenu:[NSApp mainMenu] withEvent:[NSApp currentEvent] forView:sender]; } 然后它看起来像下面这样: