У меня есть NSArraycontroller, который привязан к управляемому ObjectContext AppDelegate моего приложения. Он действует как очередь загрузки. Элементы добавляются в NSArraycontroller программно.
У меня есть таблица, в которой показаны два поля, каждое из которых представляет собой столбец со своим значением, индивидуально привязанным к указанному контроллеру NSArray. Когда начинается новая загрузка, она программно удаляется из NSArraycontroller.
Я добавил кнопку для удаления загрузок из очереди до их запуска, кнопка привязана к действию remove: NSArraycontroller, которое должно удалить выбранный элемент в таблице.
Моя проблема в том, что при нажатии кнопки удаления выбранный элемент не удаляется из таблицы, он остается там до тех пор, пока не будет нажата другая запись в таблице. Выбор строки, в которой был элемент, приводит к тому, что он будет выбран, пока кнопка мыши удерживается нажатой, как если бы он все еще был там, но без значений.
В консоли при нажатии на кнопку удаления появляется следующее: -[NSCFDictionary _setUnprocessedDeletion__:]: unrecognized selector sent to instance 0x2000f2220
Если я удаляю элементы из таблицы программно с помощью [[downloadsArray content] removeObjectAtIndex:0];
[downloadsTable reloadData];
[downloadsTable deselectAll:nil];
, кажется, что он работает нормально, за исключением того, что я все еще получаю невидимый элемент, оставшийся позади, который можно выбрать, и он остается выбранным только тогда, когда кнопка мыши нажата.
Я привязал атрибут enable кнопки удаления к canRemove контроллера NSArray, и это работает правильно.
У меня есть метка, которая показывает количество элементов в очереди, она привязана к NSArraycontroller, аранжированныеобъекты, @count. Это работает правильно при добавлении элементов, но не при их удалении.
Любые идеи о том, что я делаю неправильно, будут высоко оценены.