Xcode 将部分屏幕截图复制到粘贴板

Xcode 将部分屏幕截图复制到粘贴板,xcode,uipasteboard,Xcode,Uipasteboard,因此,将屏幕的一部分复制到粘贴板的代码可以工作,因为它成功地将其复制到我的相册中。但是,我想能够粘贴到一个新的短信部分截图。我知道它必须手动完成(长时间按住消息并粘贴),但它要么什么也不粘贴,要么没有粘贴选项(因为它正在将其保存为字符串)。代码的中间部分是我正在努力解决的部分。任何帮助都会很好。我已将forPasteboardType更改为“image”,但这也不起作用 //Capture part of Screen Shot UIGraphicsBeginImageC

因此,将屏幕的一部分复制到粘贴板的代码可以工作,因为它成功地将其复制到我的相册中。但是,我想能够粘贴到一个新的短信部分截图。我知道它必须手动完成(长时间按住消息并粘贴),但它要么什么也不粘贴,要么没有粘贴选项(因为它正在将其保存为字符串)。代码的中间部分是我正在努力解决的部分。任何帮助都会很好。我已将forPasteboardType更改为“image”,但这也不起作用

    //Capture part of Screen Shot
        UIGraphicsBeginImageContext(self.view.bounds.size);
        CGContextRef c = UIGraphicsGetCurrentContext();
        CGContextTranslateCTM(c, 0, 98);    //
        [self.view.layer renderInContext:c];
        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

    //Send Screenshot to Pasteboard    
    UIPasteboard *pasteBoard = [UIPasteboard pasteboardWithName:UIPasteboardNameGeneral create:YES];
    pasteBoard.persistent = YES;
    NSData *data = UIImagePNGRepresentation(viewImage);
    [pasteBoard setData:data forPasteboardType:(NSString *)kUTTypePNG];     

    /////// Open SMS
    MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
    if([MFMessageComposeViewController canSendText])
    {
        controller.body = @"Hello from me, paste image here -->";
        controller.recipients = [NSArray arrayWithObjects:@"123456789", nil];
        controller.messageComposeDelegate = self;
        [self presentModalViewController:controller animated:YES];
    }
    ////// End SMS
}

因此,我删除了中间部分,声明为“UIPasteboard*pasteBoard;”在.h文件中,在我的ViewDidLoad中添加了“pasteBoard=[UIPasteboard generalPasteboard];”,最后放入“pasteBoard.image=viewImage;”将图像发送到pasteBoard。如果我手动打开新短信,我可以粘贴图像。我还处理一封新邮件。但是,当我尝试将其粘贴到我的应用程序中新创建的短信中时,它将不起作用?我想可能是因为我的正文中有文本,所以我删除了“controller.body”行,但仍然不能。我觉得我很接近!好的,我通过使用这段代码打开本机SMS应用程序NSString*stringURL=@“SMS:”,实现了这一功能;NSURL*url=[NSURL URLWithString:stringURL];[[UIApplication sharedApplication]openURL:url];我现在可以将图像粘贴到本机SMS应用程序中。它仍然在顶部显示了一个白色边框,从那里我裁剪了下来。有什么想法吗?因此,我删除了中间部分,声明为“UIPasteboard*pasteBoard”;在.h文件中,在我的ViewDidLoad中添加了“pasteBoard=[UIPasteboard generalPasteboard];”,最后放上“pasteBoard.image=viewImage;”将图像发送到pasteBoard。如果我手动打开新短信,我可以粘贴图像。我还处理一封新邮件。但是,当我尝试将其粘贴到我的应用程序中新创建的短信中时,它将不起作用?我想可能是因为我的正文中有文本,所以我删除了“controller.body”行,但仍然不能。我觉得我很接近!好的,我通过使用这段代码打开本机SMS应用程序NSString*stringURL=@“SMS:”,实现了这一功能;NSURL*url=[NSURL URLWithString:stringURL];[[UIApplication sharedApplication]openURL:url];我现在可以将图像粘贴到本机SMS应用程序中。它仍然在顶部显示了一个白色边框,从那里我裁剪了下来。有什么想法吗?当我打开短信时,发现里面没有图像。我确信图像不是零。当我打开短信时,发现图像不在里面。我确信这张照片不是零。
//Capture part of Screen Shot
UIGraphicsBeginImageContext(self.view.bounds.size);
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(c, 0, 98);    //
[self.view.layer renderInContext:c];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

//Send Screenshot to Pasteboard    
UIPasteboard *pasteBoard = [UIPasteboard pasteboardWithName:UIPasteboardNameGeneral create:YES];
pasteBoard.persistent = YES;
NSData *data = UIImagePNGRepresentation(viewImage);
[pasteBoard setData:data forPasteboardType:(NSString *)kUTTypePNG];     

NSString *stringURL = @"sms:";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];