2012-03-19 2 views
7

Когда я поднимаю «новое сообщение» вручную, я увижу значок камеры слева от области редактирования текста. Когда я использую MFMessageComposeViewController, он не отображает этот значок, что означает, что вы не можете вставлять изображения. Я знаю, что это можно сделать, потому что ребята, которые сделали txtAgif, могут это сделать. Одно тонкое различие заключается в том, что Caps включен. Это может быть ключом к тому, как они работают над этим.MFMessageComposeViewController не отображает значок камеры

Я знаю, что MFMessageComposeViewController не позволяет вам вставлять изображения программно, и именно поэтому я делаю копию для трюка UIP. Эта часть работает отлично.

Этот вопрос был задан here и here вопрос не ответил, кроме как «Это невозможно».

Это мое первое сообщение, поэтому у меня не было достаточно высокого рейтинга, чтобы внести свой вклад в другие сообщения.

Как они это делают? Есть ли трюк для MFMessageComposeViewController или они используют что-то совершенно другое?

ответ

3

Я нашел ответ! Использование UIApplication sharedApplication для запуска пустого сообщения работает, пока MFMessageComposeViewController этого не делает. Поскольку я использую UIPboardboard, мне не нужно вставлять элементы в тело.

NSString *phoneToCall = @"sms: 123-456-7890"; 
    NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
    NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded]; 

    [[UIApplication sharedApplication] openURL:url]; 

Это ошибка в MFMessageComposeViewController, потому что почему они позволяют изображениям быть вставлены в один, а не других. Я бы вставлял изображение, но мне не разрешают, потому что у меня недостаточно репутации.

+1

сейчас, если ваша репутация увеличивается ... пожалуйста, вставьте изображение – KDeogharkar

+1

Я хочу посмотреть, как вы решаете эту проблему .... – KDeogharkar

+0

Вам все еще нужна помощь с этим kdeo_16? – whatchamacallit

4

Я установил это, следующий код:

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
      pasteboard.persistent = YES; 
      NSString *imagefile =app.strimagepath; 

      /// 
      BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imagefile]; 

      if (fileExists) 
      {  
       NSData *data = UIImagePNGRepresentation([UIImage imageWithContentsOfFile:imagefile]); 
       pasteboard.image = [UIImage imageWithData:data]; 
      } 
      NSString *phoneToCall = @"sms: 123-456-7890"; 
      NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
      NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded]; 

      [[UIApplication sharedApplication] openURL:url]; 

Здесь app.strimgPath это путь изображения, хранящегося в директории документа. когда MessageView открывается. Нажмите «Вставить» и нажмите «Вставить» и сообщение.

+0

Вы только добавляете копирование в буфер обмена. Ключ к ответу на мой вопрос заключается в том, что вы должны использовать UIApplication для запуска представления сообщений. Теперь опубликуйте пример использования MFMessageComposeViewController. Это не произойдет, если Apple не обновит этот класс. – whatchamacallit

+0

, когда вы не видите кнопку камеры или вы не можете вставить ее, просто попробуйте добавить действительный идентификатор сообщения получателя, и он включит значок камеры, а также позволит вам вставить изображение. – Prerna

Смежные вопросы