Frage

Ich habe WebView , wo ich Inhalte von webarchive laden. In der gleichen Ansicht habe ich IKImageView Ausgang. Bild per Drag n Drop aus Web-Ansicht auf Bildansicht nicht funktioniert für mich.

Was seltsam ist, funktioniert es, wenn ich Fotos ziehen z.B. aus iPhoto auf die gleiche Bildansicht. Ich kann auch, ziehe Bild von meiner Web-Ansicht auf NSScrollView (die einen Link zu dem Bild erzeugt), und ich kann das gleiche Foto auf eine neue Mail-Nachricht ziehen (ein Bild erzeugt, wie erwartet).

IKImageView hat "unterstützt Drag & Drop" in der IB aktiviert.

Was ich hier fehlt?

War es hilfreich?

Lösung 2

Es stellte sich heraus, dass der beste Weg d'zum Griff in meinem Fall N'D über WebArchivePboardType ist. Dann gilt:

- (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;
}

Andere Tipps

IKImageView ist wahrscheinlich eine Montagefläche von NSFilenamesPboardType erwartet, wie funktioniert die Webansicht Griff zieht Bilder?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top