Какао: удалить элемент из NSArrayController - PullRequest
3 голосов
/ 30 мая 2010

У меня есть NSArrayController, связанный с NSTableView. При этом у меня есть типичные кнопки Добавить / Удалить.

Хотя добавить элемент очень просто (я вызываю метод, создаю объект со значениями по умолчанию и добавляю его), у меня возникают проблемы при удалении объектов из контроллера. Я знаю, что могу сделать это простым способом при подключении кнопки с действием удаления из ArrayController. Но это не то, что я хочу. Мне нужно удалить объект вручную, потому что у меня есть дополнительный код для обработки.

Во всяком случае, удаление объектов кажется гораздо более сложным, чем я ожидал. Уже попробовал:

NSArray *items =  [doToItemsArrayController selectedObjects];
[doToItemsArrayController removeSelectedObjects:items]; 

или

NSIndexSet *iSet = [doToItemsArrayController selectionIndexes];
[doToItemsArrayController removeSelectionIndexes:iSet];

Кажется, ни один из них не работает. Как удалить выбранный объект из NSArrayController с кодом Objective-C?

Ответы [ 3 ]

7 голосов
/ 01 января 2011

Вы можете удалить объекты, используя любой из этих методов. Они не зависят от выбора.

– removeObjectAtArrangedObjectIndex:
– removeObjectsAtArrangedObjectIndexes:
– remove:
– removeObject:
– removeObjects:

Если вы хотите удалить выбранный объект из массива контента, то вы можете получить выбранный объект (ы), используя приведенные ниже методы, а затем подключить его к одному из методов, упомянутых выше.

– selectionIndex
– selectionIndexes
1 голос
/ 30 мая 2010

Вы можете использовать -removeObjects:, чтобы фактически удалить объекты, а не удалять их из выделения:

[doToItemsArrayController removeObjects:items];
0 голосов
/ 30 мая 2010

Вы пытались использовать методы для удаления объектов из выделения , а не для удаления объектов из массива. Почему бы просто не вызвать метод действия remove:?

...