2012-03-19 20 views
7

Po ręcznym wywołaniu "nowej wiadomości", po lewej stronie pola edycji tekstu pojawi się ikona aparatu. Gdy używam obiektu MFMessageComposeViewController, ikona nie będzie wyświetlana, co oznacza, że ​​nie można wstawiać obrazów. Wiem, że można to zrobić, ponieważ ludzie, którzy wykonali txtAgif, mogą to zrobić. Jedną z subtelnych różnic jest to, że Caps jest włączony. To może być wskazówka, jak to działa.MFMessageComposeViewController nie wyświetla ikony kamery

Wiem, że MFMessageComposeViewController nie pozwala na programowe wstawianie obrazów i właśnie dlatego robię kopię do sztuczki UIPasteboard. Ta część działa idealnie.

To samo pytanie zostało zadane here i here na to pytanie nie udzielono odpowiedzi, z wyjątkiem pytania "Nie można tego zrobić".

To jest mój pierwszy wpis, więc nie miałem wystarczająco wysokiego rankingu, aby przyczynić się do innych pytań.

Jak oni to robią? Czy istnieje sztuczka do MFMessageComposeViewController lub czy używają czegoś zupełnie innego?

Odpowiedz

3

Znalazłem odpowiedź! Użycie aplikacji UIApplication sharedApplication do uruchomienia pustego komunikatu działa, gdy nie działa narzędzie MFMessageComposeViewController. Ponieważ używam UIPasteboard, nie muszę wstawiać przedmiotów do ciała.

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

    [[UIApplication sharedApplication] openURL:url]; 

Jest to błąd w MFMessageComposeViewController bo dlaczego mieliby pozwolić zdjęć do umieszczenia w jednym, a nie inny. Wstawiam obrazek, ale nie mogę, ponieważ nie mam wystarczającej reputacji.

+1

teraz, jeśli Twoja reputacja się zwiększy ... proszę wstaw obrazek – KDeogharkar

+1

Chcę zobaczyć, jak rozwiązać ten problem ... – KDeogharkar

+0

Czy nadal potrzebujesz pomocy z tym kdeo_16? – whatchamacallit

4

Mam ustalony przez to następujący kod:

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

Tutaj app.strimgPath to ścieżka obrazu przechowywanego w katalogu dokumentów. po otwarciu MessageView. Longpress i kliknij Wklej, a wiadomość zostanie wklejona.

+0

Dodajecie tylko kopiowanie do schowka. Kluczem do odpowiedzi na moje pytanie jest to, że musisz użyć UIApplication, aby uruchomić widok wiadomości. Teraz post przykład przy użyciu MFMessageComposeViewController, który działa. Jest tak, chyba że Apple zaktualizuje tę klasę. – whatchamacallit

+0

, gdy nie widać przycisku aparatu lub nie można wkleić, po prostu spróbuj, dodając prawidłowy identyfikator wiadomości odbiorcy i umożliwi ikonę kamery, a także pozwoli wkleić obraz. – Prerna

Powiązane problemy