Я работаю над приложением Mac и занимаюсь NSTableView, чтобы показать список воспроизведения. Пользователи могут добавлять песни в таблицу (или удалять). Он поддерживает операции отмены/повтора.Как сделать несколько строк выбора после вставки NSTableVeiw
Вот часть моего кода:
// MyDocument.m
- (void)insertObject:(URSoundTrack *)object inSoundTracksAtIndex:(NSUInteger)index{
[[self.undoManager prepareWithInvocationTarget:self] removeObjectFromSoundTracksAtIndex:index];
[self.undoManager setActionName:@"Add sound track"];
[self.soundTracks insertObject:object atIndex:index];
}
- (void)removeObjectFromSoundTracksAtIndex:(NSUInteger)index{
URSoundTrack *soundTrack = [self.soundTracks objectAtIndex:index];
[[self.undoManager prepareWithInvocationTarget:self] insertObject:soundTrack inSoundTracksAtIndex:index];
[self.undoManager setActionName:@"Remove sound track"];
[self.soundTracks removeObjectAtIndex:index];
}
Эти два метода являются антагонистами для отмены/повтора, и она прекрасно работает.
Но я хочу, чтобы представление таблицы выбирало только что добавленные строки после вставки. Он также должен работать при отмене удаления или повторной вставке (для вставки объектов).
Я пробовал несколько способов, но они не работали. Я хочу знать, как заставить представление таблицы выбирать эти строки после вставки (даже при отмене/повторном вводе строк)?
==== Обновление ====
Там может быть более чем один объект, который будет вставлен в ходе одной операции, даже если погубит или переделка, в мое приложение. Мне нужно выбрать все те строки, которые были только что вставлены. Я попробовал метод –selectRowIndexes:byExtendingSelection:
с моим методом вставки, но будет работать только один выбор в первом вызванном методе вставки.
Я не знаю, как сделать множественный выбор после вставки некоторых объектов в мой метод –insertObject:inSoundTracksAtIndex:
.
Спасибо за ваш комментарий. Раньше я пытался. Но мне нужно сделать множественный выбор в моем методе вставки, и я не знаю, как это сделать. –
Я пробовал '-selectRowIndexes: byExtendingSelection:' в моем методе вставки, но этот метод выбора будет работать только один раз при первом вызове множественной вставки внутри одной операции в том же цикле запуска. Как я могу сделать множественный выбор после нескольких вставок? –
вы можете * расширить * выбор (т. Е. Сделать несколько выборов), изменив этот последний параметр, «byExtendingSelection:' », на« YES ». –