我可能犯了一個簡單的錯誤,但我根本無法將文件放到NSCollectionView上,即使以最基本的方式工作。無法拖放到NSCollectionView工作
在一個測試項目中,我在窗口上有一個NSCollectionView,而視圖控制器是它的代表和數據源。我希望能夠將文件從Finder拖到這個集合視圖中。
從閱讀的文檔,都是我應該做的是:
註冊拖累類型:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"Registering dragged types for collection view: %@", self.collectionView);
[self.collectionView registerForDraggedTypes:@[NSFilenamesPboardType]];
[self.collectionView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
[self.collectionView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:NO];
}
,然後實現這兩個方法:
-(NSDragOperation)collectionView:(NSCollectionView *)collectionView validateDrop:(id<NSDraggingInfo>)draggingInfo proposedIndex:(NSInteger *)proposedDropIndex dropOperation:(NSCollectionViewDropOperation *)proposedDropOperation {
NSLog(@"Validate drop: %@", draggingInfo);
return NSDragOperationMove;
}
-(BOOL)collectionView:(NSCollectionView *)collectionView acceptDrop:(id<NSDraggingInfo>)draggingInfo index:(NSInteger)index dropOperation:(NSCollectionViewDropOperation)dropOperation {
NSLog(@"Accept drop: %@", draggingInfo);
return YES;
}
但是,當我嘗試將項目拖到收藏視圖時,這兩種方法都不會被調用,這使我認爲registerForDraggedTypes:
調用未按預期工作。
這裏有什麼問題?還有什麼我必須看看?
重複取代。[實施例用於拖放內部NSCollectionView](http://stackoverflow.com/q/42329390/4244136) – Willeke