Remover NSManagedObjects selecionados corretamente
-
23-08-2019 - |
Pergunta
Olhe para esta ótima captura de tela e acho que você pode imaginar o que eu poderia perguntar...
captura de tela http://a4.s3.p.quickshareit.com/files/screenshot_75d0fc54a05ec7eae3f410.pngOs jogadores:
Para a direita:o painel de preferências e um
NSTableView
Para a esquerda:janela principal com umNSPopUpButton
(debaixo deNSMenu
;] )
O objeto selecionado do popup está vinculado a um deles na tableview.Essa coisa feia (o que vocês podem ver aí) aparece quando removo o objeto (no popup selecionado) da tableview. Estou usando CoreData e o NSArrayController está vinculado a uma entidade.
Encontrei 2 coisas interessantes:
NSManagedObjectContextObjectsDidChangeNotification
[NSPopUpButton synchronizeTitleAndSelectedItem];
Com o primeiro eu sei quando alguém remove um item da tableview;o segundo não funciona infelizmente para o meu problema ...
Então, alguma ideia de como explodir essa coisa feia?=D
Por falar nisso:Se você estiver interessado neste ótimo aplicativo e em um encurtador de URL nativo, você deve olhe aqui.
Solução 2
Eu tenho!
Acabei de desvincular o objeto selecionado do NSPopUpButton e vinculá-lo novamente.Ele executa esta ação only
quando o objeto selecionado foi removido da lista.;)
Outras dicas
Se entendi sua descrição de como tudo é construído corretamente, selectObject em seu NSPopupButton está vinculado a algum valor em seu NSTableView.Meu palpite é que você está usando métodos dataSource para fornecer dados à tabela e ligações para combinar os dados no pop-up com a tabela.
Você provavelmente deve usar um NSArrayController para o conjunto de dados real, vincular sua matriz de conteúdo a um NSMutablearray em seu controlador e vincular tableView e NSPopupButton ao arrayController, em vez de vincular um controle ao outro.O problema que você descreve não parece ter muito a ver com NSManagedObject, exceto por ver uma implementação padrão de -description nesta situação, mas ainda mais com o uso de ligações de uma forma não convencional.