Tengo un NSSegmentedControl en mi UI con 4 botones. El control está conectado a un método que va a llamar a diferentes métodos dependiendo de que se hace clic segmento:Mostrar el menú NSSegmentedControl cuando se hace clic en un segmento, a pesar de tener acción establecida
- (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;
}
}
Segmento 4 tiene tiene un menú que se le atribuye en el método awakeFromNib. Me gustaría que este menú se desplegara cuando el usuario hace clic en el segmento. En este punto, solo se soltará si el usuario hace clic en & se mantiene presionada en el menú. De mi investigación en línea, esto se debe a la acción conectada.
Actualmente estoy trabajando en ello usando algún código para obtener el punto de origen del control de segmento y apareciendo el menú contextual usando NSMenu popUpContextMenu:withEvent:forView
pero esto es bastante hacktastic y se ve mal en comparación con el comportamiento estándar de tener el menú desplegable debajo de la celda de control segmentada.
¿Hay alguna manera de que pueda tener el menú desplegable como debería después de un solo clic en lugar de hacer el menú contextual de hacky?
En 10.10.2/Xcode 6.3, el comportamiento estándar del menú es desplegable cuando el usuario hace clic en un segmento que no tiene ninguna acción asociada; y exigir que se presione y mantenga presionada cuando el segmento tiene una acción IBAction. Como su acción es 'mostrar menú', debería poder eliminarla. –
¿Cómo adjuntas acciones a segmentos individuales? –