J'écris un plugin webkit qui télécharge une image et l'imprime. J'ai vérifié que les données correctes sont téléchargées et que le NSImage a les bonnes dimensions. Malheureusement, le NSImageView contenant l'image n'affiche rien, ni dans le document envoyé à l'imprimante ni dans une fenêtre contenant la vue car c'est la seule sous-vue de la vue de contenu. Voici mon code:NSImageView vide dans le plugin WebKit
-(void)printImageAtURL:(NSString*)imageUrl{
NSURLResponse *response;
NSError *error = nil;
NSURL *url = [NSURL URLWithString:imageUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if(error)
return;
//Data is the correct length
NSImage *image = [[NSImage alloc] initWithData:data];
NSSize imageSize = [image size];
//imageSize is correct dimensions
NSRect viewRect = NSMakeRect(0, 0, imageSize.width, imageSize.height);
NSImageView *imageView = [[NSImageView alloc] initWithFrame:viewRect];
[imageView setImage:image];
[image release];
NSPrinter *printer = [NSPrinter printerWithName:[[NSPrinter printerNames] objectAtIndex:0]];
NSPrintInfo *printInfo = [[NSPrintInfo alloc] init];
[printInfo setPrinter:printer];
NSPrintOperation *printOp = [NSPrintOperation printOperationWithView:imageView printInfo:printInfo];
[printOp setShowsPrintPanel:NO];
[printOp runOperation];
//The print job is an empty page :(
//Pop-up a window just to test the image view
NSWindow * window = [[NSWindow alloc] init];
[window makeKeyAndOrderFront:self];
[window setFrame:viewRect display:YES];
[[window contentView] addSubview:imageView];
//The window is sized correctly but empty :(
[printInfo release];
[imageView release];
}
Merci!