아마도 내가 작성한 간단한 실수가있을 수 있지만 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:
호출이 예상대로 작동하지 않는다고 생각하게 만듭니다.
여기에서 어떤 문제가있을 수 있습니까? 그 밖의 무엇을 조사해야합니까?
중복으로 대체된다 (http://stackoverflow.com/q/42329390/4244136) – Willeke