2015-01-29 37 views
9

Có cách nào để mô phỏng chụp ảnh màn hình trên trình mô phỏng iOS (tương đương với nhà + nguồn trên thiết bị) không? Mục tiêu của tôi là KHÔNG lưu (cmd + s) hoặc sao chép một ảnh chụp màn hình (từ các mục trình đơn mô phỏng) nhưng để nắm bắt sự kiện UIApplicationUserDidTakeScreenshotNotification.Làm cách nào để mô phỏng chụp ảnh màn hình trong trình mô phỏng iOS?

+0

bạn có thể mô tả thêm về nó. những gì bạn đã thử! – nisar

+0

Cập nhật câu trả lời. Tôi đã thử lưu ảnh chụp màn hình hoặc sao chép các scree từ trình đơn giả lập nhưng không ai trong số họ kích hoạt xử lý cho UIApplucationUserDidTakeScreenshotNotification. –

+0

bạn có thể tham khảo liên kết này [link] (http://stackoverflow.com/questions/13484516/ios-detection-of-screenshot) – nisar

Trả lời

0

Tôi cũng không thể phát hiện UIApplicationUserDidTakeScreenshotNotification, Nhưng tại sao bạn không sử dụng mã này để chụp ảnh màn hình và phát hiện chúng bằng điều kiện.

// // TAKE SCREENSHOT 
CGRect myRect = [self.view bounds]; 
UIGraphicsBeginImageContext(myRect.size); 
CGContextRef ctx = UIGraphicsGetCurrentContext(); 
[[UIColor blackColor] set]; 
CGContextFillRect(ctx, myRect); 
[self.view.layer renderInContext:ctx]; 
UIImage *viewimage = UIGraphicsGetImageFromCurrentImageContext(); 
NSData *imageData = UIImageJPEGRepresentation(viewimage, 1.0); 
if(imageData!=NULL) 
{ 
    NSLog(@"user saved the image"); 
//Here you can detect the screen shots 
    [self.imagevieww setImage:[UIImage imageWithData:imageData]]; 
} 
else 
{ 
    NSLog(@"user dont want to save image"); 
} 
UIGraphicsEndImageContext(); 
4

Không, điều này hiện không thể thực hiện được trong Trình mô phỏng iOS.

+1

Có thể nếu bạn đính kèm một trình gỡ lỗi. Xem câu trả lời của tôi. –

1

Sử dụng LLĐB để bắt chước NSNotification ảnh chụp màn hình:

(lldb) expr [[NSNotificationCenter defaultCenter] postNotificationName:(NSNotificationName)UIApplicationUserDidTakeScreenshotNotification object:nil] 

đèo --ignore-breakpoints false -- cho lệnh expr nếu bạn muốn dừng lại ở một breakpoint quá:

(lldb) expr --ignore-breakpoints false -- [[NSNotificationCenter defaultCenter] postNotificationName:(NSNotificationName)UIApplicationUserDidTakeScreenshotNotification object:nil] 
Các vấn đề liên quan