带有空格的 MFMessageComposeViewController

Posted

技术标签:

【中文标题】带有空格的 MFMessageComposeViewController【英文标题】:MFMessageComposeViewController with Whitespace 【发布时间】:2010-12-30 19:13:05 【问题描述】:

我正在使用MFMessageComposeViewController 发送应用内短信。问题是当我有一个带有空格的NSString 分配给正文时,它将删除所有空格。下面的代码演示了这个问题。有趣的是,当我尝试将相同的文本复制到剪贴板并粘贴到短信应用时,它会起作用。


- (void)sendSMS 
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    if([MFMessageComposeViewController canSendText])
    
       [controller setBody:@"    aaa    aaa"];
       controller.recipients = [NSArray arrayWithObjects:nil];
       controller.messageComposeDelegate = self;
       [self presentModalViewController:controller animated:YES];
    
    [controller release];

//it becomes "aaa aaa" on the SMS message box when controller shows up.

有人知道如何解决这个问题吗?

提前致谢!

【问题讨论】:

只是好奇:字符串中的空格是制表符还是空格? 我会尝试将您的字符串常量分配给一个变量,然后在您调用 setBody 之前使用该变量进行 NSLog 调用并查看它是如何显示的(在 setBody 调用中使用相同的变量)。它可能会以您想要的方式打印,但至少它会给您一些信息。您还可以在调用 setBody 之后调用 NSLog([controller body]) 并查看其显示方式。 我已经完成了。 NSLog 和 controller.body 用正确的空格显示它。但是,在控制器消息框上显示它没有空格。 我是这么认为的,但至少你已经排除了一些事情。 纯文本。 MFMessageComposeViewController body 只能接受文本。 【参考方案1】:

这似乎仍然是一个问题 5/2012。但是,您可以使用 &nbsp 强制使用空格。不是最好的选择,但它有效。 MFMailComposeController 也会在正文中删除前导空格,并且相同的方法有效。

【讨论】:

以上是关于带有空格的 MFMessageComposeViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何在php中解析带有空格的空格分隔字符串?

如何输入带有空格的路径?

ucanaccess :带有空格的意外令牌

如何保存带有换行符或行间空格的文本?

js URL带有空格参数的处理方法

遍历带有空格的文件列表