¿Cómo hacer que un elemento de la barra de menús muestre cuántas filas hay en una tabla?

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo una tabla de datos principales y me gustaría que el elemento de la barra de menús muestre cuántas filas hay en la tabla. Ya he creado el elemento de la barra de menú con este código:

 -(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.
}

¿Qué debo agregar para que el elemento de la barra de menú muestre cuántas filas hay en la tabla?

¿Fue útil?

Solución

Si no necesita una actualización en vivo, puede probar este enfoque:

1) establecer el delegado del menú:

[theMenu setDelegate:self];

2) e implementar el método delegado:

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

Este código actualizará el elemento del menú cada vez que el usuario abra el menú. Si desea actualizarlo cada vez que cambie algo en la tabla, deberá utilizar KVO para observar el controlador de matriz. También deberá utilizar KVO si desea mostrar el recuento en el título de StatusItem.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top