2012-03-02 37 views
13

Tôi đang cố gắng lưu nội dung của NSView dưới dạng hình ảnh, nhưng chỉ hiển thị hình ảnh bên trong khung nhìn cuộn.Lưu toàn bộ nội dung NSView, bên trong NSScrollView

Đây là hình ảnh thực tế được tải trong chế độ xem: actual image.

Nhưng đây là cách tôi có thể lưu hình ảnh: saved image

Có cách nào để lưu hình ảnh toàn bộ trong NSView?

Đây là cách tôi đang tiết kiệm subclass NSView tôi:

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

phương pháp này nằm trong Xem tôi muốn lưu.

+3

How are you làm điều đó bây giờ? – hamstergene

+0

@hamstergene Tôi đã chỉnh sửa câu hỏi của mình bằng mã mà tôi hiện đang sử dụng để lưu. Có đúng không? – Alterecho

Trả lời

17

Sử dụng -[NSView cacheDisplayInRect:toBitmapImageRep:]

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

Nó hoạt động bằng hai phương pháp này! Tôi không biết cách sử dụng những phương pháp này trước đây. Cảm ơn! – Alterecho

+0

Cuối cùng, một cái gì đó hoạt động. Vì vậy, nhiều giải pháp sai, một phần hoặc có vấn đề về SO ... – mojuba

Các vấn đề liên quan