2015-09-26 68 views

回答

1

該功能是內置的。在代碼中,您可以使用-setMenu:forSegment:方法NSSegmentedControl(或NSSegmentedCell)。在界面生成器中,只需從對象庫中拖出一個菜單並將其放在適當的段上。

要允許帶有菜單的段在被點擊時被選中,您可能需要使用NSSegmentedControl的自定義子類,該子類覆蓋-startTrackingAt:inView:以在調用super之前將段設置爲選定。

+0

似乎我應該推出自己的子類來實現這種行爲,沒有辦法通過標準控件實現所需的行爲... –

0

我能夠很容易地完成你正在尋找的東西。

予設定的分段控制的trackingModeNSSegmentSwitchTrackingMomentary

然後創建用於分段控制的IBAction爲:

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

然後,它看起來如下:

enter image description here

+0

這是解決您的問題最簡單的方法。如果你想做更特別的事情,那麼你必須對分段控制進行細分並從那裏開展工作。 – mangerlahn