Pregunta

Tengo un NSTableView basado en vistas que se completa mediante enlaces.Mis textFields e imageViews están vinculados a las propiedades de objectValue de NSTableCellView.

Si quiero tener un botón de edición / información en mi NSTableCellView:

  1. ¿Quién debería ser el objetivo de la acción del botón?

  2. ¿Cómo obtendría el objetivo el objectValue asociado con la celda en la que se encuentra el botón?

En última instancia, me gustaría mostrar una ventana emergente / hoja basada en objectValue.

¿Fue útil?

Solución

Su clase de controlador puede ser el objetivo.Para obtener el valor del objeto:

- (IBAction)showPopover:(id)sender {
    NSButton *button = (NSButton *)sender;
    id representedObject = [(NSTableCellView *)[button superview] objectValue];
}

O utilice una subclase de NSTableCellView, haga que la celda vea el objetivo de la acción del botón y llame a [self objectValue] para obtener el objeto.

Otros consejos

Encontré una respuesta adicional: la respuesta anterior parece suponer que estás usando enlaces en tu vista de tabla.Como soy una especie de novato, encontré una manera de colocar el botón dentro de la celda de la vista de tabla.

- (IBAction)getCellButton:(id)sender {
     int row = [xmlTable rowForView:sender];
}

De esta manera, cuando hace clic en el botón dentro de la fila, no tiene que tener la fila seleccionada.Devolverá el valor int de la fila para que coincida con una fuente de datos en una matriz sin enlaces.

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