2010-05-30 1 views
2

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

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

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

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

или

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

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

ответ

6

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

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

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

– selectionIndex 
– selectionIndexes 
0

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

1

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

[doToItemsArrayController removeObjects:items]; 

 Смежные вопросы

  • Нет связанных вопросов^_^