Перетаскивание NSCollectionView: большинство делегированных событий не вызываются

У меня есть NSCollectionView, привязанный к NSArrayController. Я хочу, чтобы перетаскивание работало, поэтому я создаю делегата и реализую методы

-(BOOL)collectionView:(NSCollectionView *)collectionView canDragItemsAtIndexes:(NSIndexSet *)indexes withEvent:(NSEvent*)event
-(BOOL)collectionView:(NSCollectionView *)collectionView acceptDrop:(id < NSDraggingInfo >)draggingInfo index:(NSInteger)index dropOperation:(NSCollectionViewDropOperation)dropOperation
-(NSDragOperation)collectionView:(NSCollectionView *)collectionView validateDrop:(id < NSDraggingInfo >)draggingInfo proposedIndex:(NSInteger *)proposedDropIndex dropOperation:(NSCollectionViewDropOperation *)proposedDropOperation
-(NSArray *)collectionView:(NSCollectionView *)collectionView namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropURL forDraggedItemsAtIndexes:(NSIndexSet *)indexes

. Я возвращаю YES для двух методов BOOL, NSDragOperationMove для метода validateDrop: и пустой массив для метода namesOfPromisedFilesDroppedAtDestination:. У меня также есть инструкция NSLog в качестве первой строки в каждом методе, чтобы я мог видеть, когда они вызываются.

Прямо сейчас вызывается единственный метод - canDragItemsAtIndexes: (где я возвращаю YES). Я вижу, что он вызывается, но любое дальнейшее перетаскивание просто изменяет выделение. Остальным никогда не позвонят.

Если я сделаю NSCollectionView не поддерживающим выбор, то даже этот метод не будет вызван.

Я уверен, что я » Мне не хватает чего-то очень очевидного, но я не могу понять, что это такое. Кто-нибудь получил перетаскивание, работающее с NSCollectionViews, и может пролить свет?

6
задан Thomas Zoechling 29 April 2011 в 08:12
поделиться