Tengo un NSTableView
en el que deseo permitir que los usuarios arrastren y suelten archivos de video. Cuando dejan caer el archivo, se agregará como una fila en la vista de tabla.¿Arrastrar y colocar archivos en un NSTableView?
¿Cómo voy a hacer esto? Actualmente la tableview de toma sus datos de un controlador de matrices (que toma sus datos de una NSMutableArray)
encontré this documentación, pero parece que no puede hacer que funcione ..
tengo ..
- hizo una clase "TableCon" (que he cambiado a heredar de NSTableView, no NSObject)
- cambió la clase NSTableView a TableCon
- conjunto de salida delegado del NSTableView a esa clase
- llamada
registerForDraggedTypes
en init del TableCon - implementado
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender;
(de nuevo en TableCon)
..pero, nada, actúa como si nunca hubiera cambiado nada (sin errores), ¿qué estoy haciendo mal?
Editar: He intentado implementar la sugerencia de Boaz Stuller, y también encontré this descripción de la solución (la first reply incluye la solución a la primera entrada). Así que lo que he hecho ahora es ..
- Subclase NSArrayController que alimenta el contenido de la vista de tabla (TableListCon)
- Añadir
tableView
salida a TableListCon (y apuntó a la NSTableView) - Implementar validateDrop, writeRowsWithIndexes y acceptDrop en TableListCon
- Llamado registerForDraggedTypes en tableView outlet.
Una vez más, no hay errores/advertencias, pero sólo el método awakeFromNib parece ser llamado (ninguno de los otros métodos son llamados)
Esos son métodos de fuente de datos. Debe conectar la fuente de datos de la vista de tabla a la clase que implementa esos métodos para que puedan ser llamados. –
¡Ohhhhh, eso es lo que estaba haciendo mal! Por "fuente de datos", asumí que significaba el controlador de array. Todo está funcionando perfectamente ahora, ¿podría agregar esa información a su respuesta para que yo pueda aceptarla? Gracias Boaz! – dbr