WebView lädt keinen Inhalt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • WebView lädt keinen Inhalt

    Hallo miteinander,
    ich programmiere nun seit längerer Zeit zum ersten mal wieder eine kleine App.
    Mit dieser möchte ich PDFs exportieren. Dazu erstelle ich HTML-Code, der in einem WebView dargestellt werden soll, und dessen Inhalt ich dann mit NSPrintOperation in ein PDF umwandle.

    Vorgeschichte:

    Zunächst habe ich das WebView programmatisch erstellt und meinen HTML-String mittels

    Quellcode

    1. [[webView mainFrame] loadHTMLString:html baseURL:[NSURL URLWithString:@"localhost"]];

    geladen und gedruckt. Allerdings wurde nur eine leere Seite ausgegeben.

    Eine Recherche ergab, dass es scheinbar einen Bug in Leopard gab, der genau dies bewirkte und umgangen werden konnte, indem man ein WebView per IB erstellt und das IBOutlet anspricht. Das habe ich dann auch mal ausprobiert (obwohl ich 10.7 benutze), bekam aber immernoch eine leere Seite.

    Problem:

    Mittlerweile habe ich festgestellt, dass das WebView gar keinen Inhalt lädt, weder mit der obigen Methode, noch per -loadRequest: oder -setMainFrameURL:
    Dass das Outlet richtig gelingt ist, habe ich überprüft, das Fenster, in das WebView ist, lässt sich über dieses ansteuern.


    Woran könnte das liegen?


    Quellcode

    1. -(void)exportRegistrationAsPDF:(NSDictionary *)data at:(NSSavePanel *)savePanel {
    2. NSString *html = [self generateRegistration:data];
    3. NSPrintInfo *printInfo;
    4. NSPrintOperation *printOp;
    5. NSMutableDictionary *printInfoDict = [NSMutableDictionary dictionary];
    6. printInfoDict = [NSMutableDictionary dictionaryWithDictionary:[[NSPrintInfo sharedPrintInfo] dictionary]];
    7. [[self.webView mainFrame] loadHTMLString:html baseURL:[NSURL URLWithString:@"localhost"]];
    8. [[[[self.webView mainFrame] frameView] documentView] setNeedsLayout:YES];
    9. [self.webView setNeedsDisplay:YES];
    10. while([[[self.webView mainFrame] provisionalDataSource] isLoading])
    11. [[NSRunLoop currentRunLoop] limitDateForMode:@"NSDefaultRunLoopMode"];
    12. while([[[self.webView mainFrame] dataSource] isLoading])
    13. [[NSRunLoop currentRunLoop] limitDateForMode:@"NSDefaultRunLoopMode"];
    14. [printInfoDict setObject:NSPrintSaveJob forKey:NSPrintJobDisposition];
    15. [printInfoDict setObject:[[[savePanel URL] path] stringByAppendingString:@".pdf"] forKey:NSPrintSavePath];
    16. printInfo = [[NSPrintInfo alloc] initWithDictionary:printInfoDict];
    17. [printInfo setHorizontalPagination:NSFitPagination];
    18. [printInfo setVerticalPagination:NSAutoPagination];
    19. [printInfo setVerticallyCentered:NO];
    20. printOp = [NSPrintOperation printOperationWithView:[[[self.webView mainFrame] frameView] documentView] printInfo:printInfo];
    21. [printOp setShowsPrintPanel:NO];
    22. [printOp setShowsProgressPanel:YES];
    23. [printOp runOperation];
    24. }
    Alles anzeigen

    Skeiron
    Der Mac heiligt die Mittel.