Вставка изображения в смс через UIPasteBoard
То, что я пытаюсь сделать, это вставить некоторые изображения из моего приложения в 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 ответа
Действие "Вставить" будет показано только в том случае, если доска вставки содержит поддерживаемый элемент для текущего объекта (здесь текстовое поле), к которому вы прикоснулись. Похоже, вы добавляете только изображение в разделочную доску. Текстовое поле не поддерживает изображения. Таким образом, действие "Вставить" не появляется.
Этот код работает нормально:
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"imageName"]];
[[UIPasteboard generalPasteboard] setImage:image];
У меня это работает. Я просто использую setData для предоставления ему необработанных данных, а затем устанавливаю тип данных с помощью forPasteboardType. Прямо под вашим
if (fileExists){
Попробуй это
NSData *data = [NSData dataWithContentsOfFile:imagefile];
[pasteboard setData:data forPasteboardType:@"public.png"];
Вы можете посмотреть различные UTI PasteboardType здесь.