cocoa - Eliminar NSManagedObjects correctamente seleccionados
core-data cocoa-bindings (2)
Mira esta gran captura de pantalla y creo que puedes imaginar lo que podría preguntar ...
captura de pantalla http://a4.s3.p.quickshareit.com/files/screenshot_75d0fc54a05ec7eae3f410.png Los jugadores:
a la derecha: el panel de preferencias y una
NSTableView
a la izquierda: ventana principal conNSPopUpButton
(bajoNSMenu
;])
El objeto seleccionado de la ventana emergente está vinculado a uno de estos en la vista de tabla. Esto feo (lo que puede ver allí) aparece cuando elimino el objeto (en el elemento emergente seleccionado) de la vista de tabla. Estoy usando CoreData y NSArrayController está vinculado a una entidad.
Encontré 2 cosas interesantes:
NSManagedObjectContextObjectsDidChangeNotification
[NSPopUpButton synchronizeTitleAndSelectedItem];
Con lo primero que sé cuando alguien quita un elemento de la mesa; el segundo no funciona desafortunadamente para mi problema ...
Entonces, ¿alguna idea de cómo destruir esta fea cosa? = D
Por cierto: si está interesado en esta buena aplicación y un acortador de URL nativo, debería mirar aquí .
Si entiendo tu descripción de cómo todo está construido correctamente, selectedObject en tu NSPopupButton está vinculado a algún valor en tu NSTableView. Supongo que está utilizando métodos de fuente de datos para proporcionar a la tabla datos y enlaces para hacer coincidir los datos en la ventana emergente con la tabla.
Probablemente debería usar un NSArrayController para el conjunto de datos real, vincular su matriz de contenido a un NSMutablearray en su controlador, y vincular tanto el tableView como el NSPopupButton al arrayController, en lugar de vincular un control con el otro. El problema que describes no parece tener mucho que ver con NSManagedObject, excepto para ver una implementación predeterminada de -description en esta situación, pero más con el uso de enlaces de una manera no convencional.
¡Lo tengo!
Acabo de desvincular el objeto seleccionado de NSPopUpButton y lo volví a vincular. Realiza esta acción only
cuando el objeto seleccionado se eliminó de la lista. ;)