我想使用Xcode工具欄中的菜單向我的OS X應用添加分段控件。它將在三個屏幕之間切換,並且還需要以菜單的形式在每個屏幕中有一些選項。 如何使用Xcode工具欄中的菜單進行分段控制
當我向其中添加菜單時,標準分段控件不允許「選擇一個」模式。
我想使用Xcode工具欄中的菜單向我的OS X應用添加分段控件。它將在三個屏幕之間切換,並且還需要以菜單的形式在每個屏幕中有一些選項。 如何使用Xcode工具欄中的菜單進行分段控制
當我向其中添加菜單時,標準分段控件不允許「選擇一個」模式。
該功能是內置的。在代碼中,您可以使用-setMenu:forSegment:
方法NSSegmentedControl
(或NSSegmentedCell
)。在界面生成器中,只需從對象庫中拖出一個菜單並將其放在適當的段上。
要允許帶有菜單的段在被點擊時被選中,您可能需要使用NSSegmentedControl
的自定義子類,該子類覆蓋-startTrackingAt:inView:
以在調用super之前將段設置爲選定。
我能夠很容易地完成你正在尋找的東西。
予設定的分段控制的trackingMode
到NSSegmentSwitchTrackingMomentary
然後創建用於分段控制的IBAction爲:
- (IBAction)selectionChanged:(NSSegmentedControl *)sender {
[NSMenu popUpContextMenu:[NSApp mainMenu] withEvent:[NSApp currentEvent] forView:sender];
}
然後,它看起來如下:
這是解決您的問題最簡單的方法。如果你想做更特別的事情,那麼你必須對分段控制進行細分並從那裏開展工作。 – mangerlahn
似乎我應該推出自己的子類來實現這種行爲,沒有辦法通過標準控件實現所需的行爲... –