Pregunta

Tengo una costumbre NSCell (en realidad subclase NSTextFieldCell), que se usa tanto en un editor independiente como en un NSTableColumn (ligado a los datos del núcleo a través de NSArrayController). Cuando el usuario cambia el valor, llamo -[NSCell setObjectValue:] para actualizar el valor (es un NSNumber). Esto funciona en el editor independiente, ya que cuando está hecho, actualizo manualmente el vinculante.

[self setObjectValue:[NSNumber numberWithInt:newValue]];

Falta ese paso (actualización del campo unido) cuando la celda está en un NSTableView - El valor actualizado aparece mientras la edición del usuario (con seguimiento del mouse), pero tan pronto como termina, el valor vuelve al valor persistido.

los NSTableColumn está vinculado a una clave de -[NSArrayController arrangedObjects]. ¿Hay algún tipo de llamada a "Comprometer" o "Actualizar" que me estoy perdiendo? No pude encontrar ninguna función útil en los documentos para NSCell o NSTableView.

¿Fue útil?

Solución

Para resolver esto, implementé -tableView:setObjectValue:forTableColumn:row: en mi NSArrayController subclase. Tengo la instancia de mi NSManagedObject Subclase del argumento de fila y luego asigne manualmente el nuevo modelo del argumento ObjectValue. Todavía no sé por qué esto es necesario, cuando las celdas de texto hacen esto automáticamente, pero funciona.

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