제 경우를 다루는 가장 좋은 방법은 WebArchivePboardType
입니다. 그런 다음 :
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
{
NSPasteboard *pboard;
NSDragOperation sourceDragMask;
sourceDragMask = [sender draggingSourceOperationMask];
pboard = [sender draggingPasteboard];
// Create image data from webarchive stored in a pasteboard.
NSData *image = [pboard dataForType:WebArchivePboardType];
WebArchive *webArchive = [[WebArchive alloc] initWithData:image];
// Let's see what are we dragging.
for (WebResource *subresource in [webArchive subresources])
{
NSString *mimeType = [subresource MIMEType];
if ([mimeType hasPrefix:expectedMimeTypeStartsWith])
{
NSData *data = [subresource data];
CFDataRef imgData = (CFDataRef)data;
CGDataProviderRef imgDataProvider = CGDataProviderCreateWithCFData (imgData);
CGImageRef image;
if ([mimeType hasSuffix:@"png"])
{
image = CGImageCreateWithPNGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault);
}
else if ([mimeType hasSuffix:@"jpeg"])
{
image = CGImageCreateWithJPEGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault);
}
[self setImage:image imageProperties:nil];
}
}
return YES;
}
. "이미지보기 위에 웹보기에서 이미지 드래그 N 드롭 나를 위해 작동하지 않습니다"더 구체적으로하시기 바랍니다. 대신 무엇이 발생합니까? –
IKImageView 위로 마우스를 가져 가면 커서가 녹색 더하기 기호로 바뀌지 않고 마우스 단추를 놓으면 드래그 한 이미지가 웹보기로 "돌아갑니다"라는 메시지가 표시됩니다 (축소판으로 바뀌고 그림자가 있음). 원본 이미지 위치로). –