2012-03-19 3 views
7

"New Message"を手動で表示すると、テキスト編集エリアの左側にカメラアイコンが表示されます。 MFMessageComposeViewControllerを使用すると、このアイコンが表示されず、イメージを挿入できません。私はtxtAgifを作った人がそれを行うことができるので、これができることを知っています。微妙な違いの1つは、Capsがオンになっていることです。これは、彼らがこれをどのように働かせるかという手掛かりになるかもしれません。MFMessageComposeViewControllerカメラアイコンが表示されない

私は、MFMessageComposeViewControllerがプログラムで画像を挿入することを許可していないことを知っています。そのため、私はUIPasteboardトリックへのコピーをやっています。この部分は完全に機能します。

これは同じ質問です。herehere質問は「完了できません」以外は回答されていません。

これは私の最初の投稿ですので、他の質問投稿に貢献するには十分なランキングがありませんでした。

どうしたのですか? MFMessageComposeViewControllerへのトリックはありますか、まったく異なるものを使用していますか?

答えて

3

回答が見つかりました!空のメッセージを起動するためのUIApplication sharedApplicationの使用は、MFMessageComposeViewControllerが動作していないときに機能します。私はUIPasteboardを使用しているので、ボディにアイテムを挿入する必要はありません。

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

    [[UIApplication sharedApplication] openURL:url]; 

なぜ彼らは画像が1とされていない他の中に挿入することができるようになるので、これはMFMessageComposeViewControllerのバグです。私はイメージを挿入するが、私は十分な評判がないので、許可されていない。

+1

あなたの評判が上がった場合...画像を挿入してください – KDeogharkar

+1

この問題の解決方法を見てみたいです... – KDeogharkar

+0

このkdeo_16にはまだ助けが必要ですか? – whatchamacallit

4

Iコードに従うことによって、これを修正した:

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

カメラのボタンが見えないときや貼り付けることができないときは、受信者の有効なメッセージIDを追加するだけで、カメラのアイコンが有効になり、画像を貼り付けることができます。 – Prerna

関連する問題