私は4つのボタンでUIにNSSegmentedControlを持っています。コントロールがクリックされたセグメントに応じて異なるメソッドをコールするメソッドに接続されている:アクションが設定されているにもかかわらず、セグメントがクリックされたときにNSSegmentedControlメニューを表示
- (IBAction)performActionFromClick:(id)sender {
NSInteger selectedSegment = [sender selectedSegment];
NSInteger clickedSegmentTag = [[sender cell] tagForSegment:selectedSegment];
switch (clickedSegmentTag) {
case 0: [self showNewEventWindow:nil]; break;
case 1: [self showNewTaskWindow:nil]; break;
case 2: [self toggleTaskSplitView:nil]; break;
case 3: [self showGearMenu]; break;
}
}
セグメント4はawakeFromNib方法でそれに取り付けられたメニューを有しています。ユーザーがセグメントをクリックすると、このメニューがドロップダウンされます。この時点で、ユーザーが&をクリックするとメニューが停止します。オンラインで私の研究から、これは接続されたアクションのためです。
私は現在、セグメントコントロールの原点を取得し、NSMenuのpopUpContextMenu:withEvent:forView
を使用してコンテキストメニューをポップアップさせるためにいくつかのコードを使用していますが、これはかなりhacktasticで、メニューを持つ標準的な動作セグメント化されたコントロールセルの下にドロップダウンします。
ハッキーなコンテキストメニューを行うのではなく、シングルクリック後にメニューをドロップダウンする方法はありますか?
10.10.2/Xcode 6.3で、メニューが表示されるのは、アクションが割り当てられていないセグメントをユーザーがクリックするとドロップダウンすることです。セグメントにIBActionがあるときにクリックアンドホールドを要求することができます。あなたの行動は「ショーメニュー」なので、あなたはそれを取り除くことができるはずです。 –
個々のセグメントにアクションをどのように添付しますか? –