2012-03-19 28 views
7

Quando visualizzo manualmente un "Nuovo messaggio", vedrò un'icona della fotocamera a sinistra dell'area di modifica del testo. Quando utilizzo MFMessageComposeViewController non visualizzerà questa icona, il che significa che non è possibile inserire immagini. So che questo può essere fatto perché i ragazzi che hanno fatto txtAgif possono farlo. Una sottile differenza è che il Caps è attivo. Questo potrebbe essere un indizio su come stanno facendo funzionare tutto questo.MFMessageComposeViewController non visualizza l'icona della telecamera

So che MFMessageComposeViewController non ti permette di inserire le immagini a livello di codice ed è per questo che sto facendo la copia al trucco UIPasteboard. Questa parte funziona perfettamente.

Questa stessa domanda è stata posta here e here alla domanda non è stata data risposta tranne per "Non può essere fatto".

Questo è il mio primo post quindi non avevo una classifica sufficientemente alta da contribuire agli altri post delle domande.

Come stanno facendo questo? C'è un trucco per MFMessageComposeViewController o stanno usando qualcosa di completamente diverso?

risposta

3

Ho trovato la risposta! Utilizzo dell'applicazione UIA sharedApplication per avviare un messaggio vuoto funziona mentre MFMessageComposeViewController no. Perché sto usando l'UIPasteboard non ho bisogno di inserire oggetti nel corpo.

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

    [[UIApplication sharedApplication] openURL:url]; 

Si tratta di un bug nel MFMessageComposeViewController causa perché dovrebbero consentire le immagini da inserire in uno e non l'altro. Vorrei inserire un'immagine ma non mi è permesso perché non ho abbastanza reputazione.

+1

ora se la tua reputazione è aumentata ... per favore inserisci un'immagine – KDeogharkar

+1

voglio vedere come risolvi questo problema .... – KDeogharkar

+0

Hai ancora bisogno di aiuto con questo kdeo_16? – whatchamacallit

4

ho fissato questo codice seguente:

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]; 

Ecco app.strimgPath è il percorso di immagine memorizzata nella directory del documento. quando il MessageView è aperto. Premere a lungo e fare clic su Incolla e il messaggio verrà incollato.

+0

Aggiungendo la copia negli Appunti. La chiave per la risposta alla mia domanda è che devi usare UIApplication per avviare la visualizzazione dei messaggi. Ora pubblica un esempio utilizzando MFMessageComposeViewController che funziona. Non è a meno che Apple aggiorni questa classe. – whatchamacallit

+0

quando non riesci a vedere il pulsante della fotocamera o non riesci a incollare, prova solo aggiungendo l'id del destinatario valido e abiliterà l'icona della fotocamera e ti consentirà di incollare l'immagine. – Prerna