2012-03-02 7 views
13

Sto tentando di salvare il contenuto di un NSView come immagine, ma, solo l'immagine visibile all'interno dello scrollview viene salvata.Salvataggio di interi contenuti NSView, che si trovano all'interno di NSScrollView

Ecco l'immagine effettiva caricata nella vista: actual image.

Ma questo è come io sono in grado di salvare l'immagine: saved image

C'è un modo per salvare l'intera immagine nel NSView?

Questo è come mi sto salvando il mio NSView sottoclasse:

- (void)save 
{ 
    [self lockFocus]; 
    NSBitmapImageRep* rep = [[NSBitmapImageRep alloc] initWithFocusedViewRect:[self bounds]]; 
    [self unlockFocus]; 

    NSData* data = [rep representationUsingType:NSPNGFileType properties:nil]; 

    NSString* string = NSHomeDirectory(); 
    NSString* pth1 = [string stringByAppendingPathComponent:@"ttx.png"]; 

    [data writeToFile:pth1 atomically:YES]; 
} 

Questo metodo è in vista voglio salvare.

+3

Come stai ora? – hamstergene

+0

@hamstergene Ho modificato la mia domanda con il codice che sto attualmente utilizzando per salvare. È la strada giusta? – Alterecho

risposta

17

Usa -[NSView cacheDisplayInRect:toBitmapImageRep:]

NSBitmapImageRep* rep = [self bitmapImageRepForCachingDisplayInRect:self.bounds]; 
[self cacheDisplayInRect:self.bounds toBitmapImageRep:rep]; 
+0

Funziona con questi due metodi! Non sapevo come usare questi metodi prima. Grazie! – Alterecho

+0

Finalmente qualcosa che funziona. Così tante soluzioni sbagliate, parziali o problematiche su SO ... – mojuba

Problemi correlati