Categories: Xcode

Xcode:MFMessageComposeViewController のバグ

iOS App で “MFMessageComposeViewController” でメッセージを呼び出す場合、こんな感じで書きます。

[code:cpp]
if ( [MFMessageComposeViewController canSendText] ) {

MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
controller.messageComposeDelegate = self;

controller.recipients = nil;
controller.body = nil;

[self presentModalViewController:controller animated:YES];

} else {

alert = [[UIAlertView alloc]
initWithTitle:nil
message:NSLocalizedString(@”Device not configured to send SMS”, @”local_message_faild”)
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@”OK”, nil];
[alert show];

}
[/code]

ただ、どうやら iOS のバグで(iOS 6 でしか確認してませんが)、本文欄を長押しでペーストのメニューは出るのですが、ペーストが効きません。
Jesus Christ !! なんてこったい。

じゃあ、とりあえずどうするかということで、例えば予め画像をクリップボードへコピーし、メッセージアプリを起動してして、手動でペーストしてもらうというのが、良いのでは?というところです。

[code:cpp]
UIPasteboard *pboard_img = [UIPasteboard generalPasteboard];
[pboard_img setData:[NSData dataWithData:UIImageJPEGRepresentation(image, 1.0)] forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]];

NSString *phoneToCall = @”sms:”;
NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded];
[[UIApplication sharedApplication] openURL:url];
[/code]

それと、iOS の仕様上、メッセージに設定出来るのは “recipients”, “body” の2つなので、そもそも画像とかを添付出来ないみたいですね。たぶん。

Share

Recent Posts

移転を計画中?

新たにドメインを取得し、サイト…

4年 ago

iPhone から Android へ乗り換えた

長く使ってきた iPhone …

6年 ago

Chrome の拡張機能がウェブサイトからインストールを中止

ブラウザのアドオン、拡張機能と…

7年 ago

iOS 12 と macOS 10.14 Mojave 対応機種

iOS 12 と macOS …

7年 ago