Mostrar o menu NSSegmentedControl quando o segmento clicou, apesar de ter definido a ação
Eu tenho um NSSegmentedControl na minha interface do usuário com 4 botões. O controle é conectado a um método que chama métodos diferentes dependendo de qual segmento é clicado:
- (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;
}
}
O segmento 4 tem um menu anexado a ele no método awakeFromNib. Eu gostaria que esse menu fosse suspenso quando o usuário clicasse no segmento. Nesse ponto, ele só será descartado se o usuário clicar e manter pressionado no menu. De minha pesquisa on-line isso é por causa da ação conectada.
Atualmente estou trabalhando em torno dele usando algum código para obter o ponto de origem do controle de segmento e exibindo o menu de contexto usando o NSMenupopUpContextMenu:withEvent:forView
mas isso é bastante hacktastic e parece ruim em comparação com o comportamento padrão de ter o menu suspenso abaixo da célula de controle segmentada.
Existe uma maneira que eu posso ter o menu suspenso como deveria depois de um único clique, em vez de fazer o menu de contexto hacky coisa?