Me pregunto cómo se podría implementar una vista de esquema como el que Xcode 3 está utilizando para la configuración de generación:Ejecución NSOutlineView/NSTableView con células de diferentes tipos de datos (y) por fila
alt text http://img812.imageshack.us/img812/9467/xcodeoutlineview.png
Cuando utilizando un NSOutlineView/NSTableView con enlaces y un NSTreeController/NSArrayController, las columnas de la vista obtienen enlaces asignados a, no las celdas individuales, por razones obvias. Si cada fila en una columna usa la misma celda, entonces es pan comido. Sin embargo, si cada fila (potencialmente) utiliza su propio tipo de celda (y con eso, potencialmente, su propia colección de enlaces), entonces las cosas se ponen de moda.
Al observar la captura de pantalla, se puede ver claramente que la celda del campo de texto solo necesita una sola encuadernación para "valor". Si bien la pila de botón emergente necesita al menos una para "contenido", uno para "contentValues " y por último pero no por ello menos uno vinculantes para "selectedIndex/selectedObject/SelectedValue". Y la celda de casilla de verificación necesita un enlace para "valor" y (probablemente) uno para "título".
¿Cómo se puede lograr esto con un código tan limpio (y poco) como sea posible?
(O como uno podría preguntar:¿Cómo Apple ha hecho?)
...
Aquí es lo que he intentado yo mismo hasta el momento:
que proporcionan las células apropiadas (copiado) a través de [outlineView: dataCellForTableColumn: item:] y vincúlelos a los modelos de datos individuales (del [elemento representadoObjeto]). Sé la cantidad exacta de datos (< 500 filas) que se muestran en la vista de esquema, por lo que tener una celda por fila no debería ser un problema de memoria, ¿no? Obtuve los datos para mostrarse correctamente a través de enlaces (yay!) Sin embargo, no puedo cambiar ninguno de sus valores. O_o Aparentemente, el cambio de valor simplemente nunca pasa al modelo de datos. ¿Hay algo más que un simple [checkboxCell bind: @ "value" toObject: rowModel withKeyPath: @ "value" options: nil]? (Ya que esto parece suficiente para conseguir valores, pero no para establecer en consecuencia.)
no pude encontrar ninguna información sobre este tema. Mucha información y sugerencias para usar celdas personalizadas por columna, pero ninguna para usarlas "por fila". :(
Esto sería una gran cosa para un tutorial de Cocoa, ¿no?;)
También está NSDictionaryController. No sé qué tan lejos te llevará hacia esto, pero echa un vistazo. –
@Mike No es tanto un problema del controlador, sino una de las vistas de tabla que maneja sus celdas. Pero gracias de todos modos :) – Regexident
casi 5 años después y esta fue la única información que pude encontrar sobre la mezcla de enlaces con fuentes de datos en una tabla con diferentes celdas, "Esto sería una gran cosa para un tutorial de Cocoa, ¿no?" ¡diablos, sí! – rraallvv