2012-04-19 9 views
5

Tengo un controlador de vista que es el delegado para 2 tablas, una tabla basada en vista y una tabla basada en celdas. La tabla basada en celdas está llamando al cuando debería llamar al objectValueForTableColumn. Me aseguré doblemente de que fuera una tabla basada en celdas en el constructor de interfaces.¿Por qué mi NSTableView basado en mi célula llama a viewForTableColumn?

+0

tengo el mismo problema. Me gustaría que la instancia de NSViewController sea un delegado tanto para tablas basadas en vista como basadas en celdas. Desafortunadamente, mientras que el método tableView: viewForTableColumn: row: se llama para uno basado en celdas, su contenido no se muestra en absoluto. – dzolanta

Respuesta

5

Si el delegado del NSTableView implementa el método tableView:viewForTableColumn:row:, el NSTableView cambia automáticamente a la vista. Tendrá que hacer diferentes delegados para las 2 vistas de tabla

1

Las vistas de tabla basadas en vista y las vistas de tabla basadas en celdas no se mezclan, puede tener dos delegados diferentes o puede convertir la tabla de bases de celda en una ver tabla basada y luego usar el siguiente código en tableView:viewForTableColumn:row: para que se vea como una tabla basada en células:

NSTableCellView *cell = [tableView makeViewWithIdentifier:@"textFieldCell" owner:self];

donde textFieldCell es el identificador de la célula. A continuación, se establece la cadena que desea que aparezca en la celda utilizando este código:

[[cell textField] setStringValue:desiredString];

al final del método devuelve la variable de células

Cuestiones relacionadas