Удалить правильно выбранные NSManagedObjects - PullRequest
0 голосов
/ 13 февраля 2009

Посмотрите на этот великолепный скриншот, и я думаю, вы можете представить, что я могу спросить ...

скриншот http://a4.s3.p.quickshareit.com/files/screenshot_75d0fc54a05ec7eae3f410.png Игроки:

направо: панель настроек и NSTableView
слева: главное окно с NSPopUpButton (под NSMenu;])

Выбранный объект всплывающего окна привязывается к одному из них в табличном представлении. Эта уродливая вещь (которую вы можете увидеть там) появляется, когда я удаляю (в выбранном всплывающем окне) объект из табличного представления. Я использую CoreData, а NSArrayController привязан к одному объекту.

Я нашел 2 интересных вещи:

NSManagedObjectContextObjectsDidChangeNotification  
[NSPopUpButton synchronizeTitleAndSelectedItem];

С первым я знаю, когда кто-то удаляет элемент из табличного представления; второй не работает, к сожалению, для моей проблемы ...

Так есть идеи, как убрать эту уродливую вещь? = D

Кстати: если вас интересует это замечательное приложение и собственный сокращатель URL, вы должны посмотреть здесь .

Ответы [ 2 ]

1 голос
/ 13 февраля 2009

Если я понимаю ваше описание того, как все правильно построено, selectedObject в вашем NSPopupButton привязан к некоторому значению в вашем NSTableView. Я предполагаю, что вы используете методы dataSource для предоставления таблицы данными и привязок для сопоставления данных во всплывающем окне с таблицей.

Вам, вероятно, следует использовать NSArrayController для фактического набора данных, связать его массив содержимого с NSMutablearray в вашем контроллере и связать tableView и NSPopupButton с arrayController вместо привязки одного элемента управления к другому. Проблема, которую вы описываете, похоже, не имеет ничего общего с NSManagedObject, за исключением того, что в этой ситуации вы видите реализацию -description по умолчанию, но более того - использование привязок нестандартным способом.

0 голосов
/ 15 февраля 2009

У меня есть!
Я просто открепил выбранный объект NSPopUpButton и снова связал его. Он выполняет это действие only, когда выбранный объект был удален из списка. ;)

...