Come si fa a visualizzare un elemento della barra dei menu quante righe ci sono in una tabella?

StackOverflow https://stackoverflow.com/questions/823570

  •  05-07-2019
  •  | 
  •  

Domanda

Ho una tabella di dati di base e vorrei che la barra dei menu mostrasse quante righe ci sono nella tabella. Ho già creato l'elemento della barra dei menu usando questo codice:

 -(void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
NSStatusItem *statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain]; //Create new status item instance
[statusItem setHighlightMode:YES]; //This does something, I'm sure of it.
[statusItem setTitle:[NSString stringWithFormat:@"%C",0xff50]]; //This labels it. You can also use setImage instead to use an icon. That current code will result in a item labeled "p"
[statusItem setEnabled:YES]; //Self explanatory
[statusItem setMenu:theMenu];
[statusItem setToolTip:@"TOOLTIP HA AWESOME AMIRITE?"]; //Optional, just for kicks.
}

Cosa devo aggiungere per visualizzare la voce della barra dei menu quante righe ci sono nella tabella?

È stato utile?

Soluzione

Se non hai bisogno di aggiornamenti in tempo reale puoi provare questo approccio:

1) imposta il delegato del menu:

[theMenu setDelegate:self];

2) e implementare il metodo delegato:

- (void)menuWillOpen:(NSMenu *)menu {
    NSUInteger count = [self.tableView numberOfRows];
    [[menu itemAtIndex:0] setTitle: [NSString stringWithFormat:@"%d rows", count]];
}

Questo codice aggiorna la voce di menu ogni volta che l'utente apre il menu. Se si desidera aggiornarlo ogni volta che cambia qualcosa nella tabella, sarà necessario utilizzare KVO per osservare il controller di array. Sarà inoltre necessario utilizzare KVO se si desidera visualizzare il conteggio nel titolo di StatusItem.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top