簡體   English   中英

MFMessageComposeViewController使消息主體重復兩次

[英]MFMessageComposeViewController having the message body repeated twice

當使用以下代碼通過MFMessageComposeViewController設置應用內SMS消息時:

if([MFMessageComposeViewController canSendText])
{
    // Add Cocos view & stop anims
    [[[CCDirector sharedDirector] view] addSubview:self.view];
    [[CCDirector sharedDirector] pause];
    [[CCDirector sharedDirector] stopAnimation];

    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];

    controller.body = @"TEST";
    controller.recipients = nil;
    controller.messageComposeDelegate = self;

    // Cocos window view present
    [[[[CCDirector sharedDirector] view] window] addSubview:controller.view];
    [[CCDirector sharedDirector] presentViewController:controller animated:YES completion:^{NSLog(@"test open");}];


}

該視圖正確顯示,但是消息正文文本出現了兩次。 在可編輯的文本字段中,它具有“ TEST”(測試),然后在下一行再次具有另一個“ TEST”。

我嘗試添加標題並使用各種不同的消息,但始終使消息正文出現兩次。 我還檢查了該代碼是否僅被調用了一次以上,但不是。

有任何想法嗎?

(Xcode 5.0.1,iPhoneOS 7.0 SDK,在iPhone 5上進行測試)

對於其他遇到這種情況的人,我發現在設置正文之前,將控制器視圖添加到窗口中可以解決此問題。

像這樣:

if([MFMessageComposeViewController canSendText])
{
    [[CCDirector sharedDirector] pause];
    [[CCDirector sharedDirector] stopAnimation];

    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];

    // ** Add the view BEFORE setting the body text... **
    [[[[CCDirector sharedDirector] view] window] addSubview:controller.view];

    [controller setRecipients:nil];
    controller.messageComposeDelegate = self;
    [controller setBody:message];

    [[CCDirector sharedDirector] presentModalViewController:controller animated:YES ];
}

使用此代碼,正文文本不會在SMS中重復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM