Вставка изображения в смс через UIPasteBoard - PullRequest
3 голосов
/ 14 апреля 2011

Я пытаюсь вставить несколько изображений из моего приложения в SMS.

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString *imagefile = [[NSBundle mainBundle] 
                       pathForResource:@"imagename"]
                       ofType:@"png"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imagefile];

if (fileExists){    
    UIImage *ui = [[UIImage alloc] initWithContentsOfFile:imagefile];
    pasteboard.image = ui;
    [ui release];
}

В режиме отладки я обнаружил, что изображение существует, и оно уходит в монтажный картон (я проверил это, представляя представление изображения с изображением из монтажного листа, и оно необходимое).

После сохранения в буфер обмена я звоню

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]];

это всплывающее окно, но когда я нажимаю на «текстовое поле», кнопка «Вставить» не отображается. Может кто-нибудь указать на мою ошибку? Или это имеет смысл делать? Я имею в виду, можно ли отправить изображение через приложение для iPhone-сообщения по умолчанию?

Ответы [ 3 ]

3 голосов
/ 14 апреля 2011

Действие «Вставить» будет показано только в том случае, если на панели вставки содержится поддерживаемый элемент для текущего объекта (здесь текстовое поле), к которому вы прикоснулись. Похоже, вы добавляете только изображение в разделочную доску. Текстовое поле не поддерживает изображения. Таким образом, действие "Вставить" не отображается.

1 голос
/ 11 ноября 2014

Этот код работает нормально:

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"imageName"]];
[[UIPasteboard generalPasteboard] setImage:image];
1 голос
/ 21 марта 2012

у меня это работает.Я просто использую setData для предоставления ему необработанных данных, а затем устанавливаю тип данных с помощью forPasteboardType.Прямо под вашим

    if (fileExists){

Попробуйте это

    NSData *data = [NSData dataWithContentsOfFile:imagefile];
    [pasteboard setData:data forPasteboardType:@"public.png"];            

Здесь вы можете посмотреть различные UTI PasteboardType здесь.

...