作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现自动填充电子邮件。我的 emailviewcontroller 在单独的测试环境中正确弹出,但我无法弄清楚如何将字符串添加到消息正文。基本上,我在 GUI 的根 Controller 上有三个按钮,用于设置三个字符串的值。我想要的只是在消息正文中重现这三个字符串(如果可能的话用逗号分隔)。这是到目前为止我的代码:
-(IBAction)displayComposerSheet
{
NSArray *recipient = [NSArray arrayWithObjects:@"testemail@office.co.uk", nil];
if([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
mailViewController.mailComposeDelegate = self;
[mailViewController setSubject:@"Place holder ... this is a test subject"];
[mailViewController setMessageBody: isHTML:NO];
[mailViewController setToRecipients:recipient];
[self presentModalViewController:mailViewController animated:YES];
}
else
NSLog(@"Device is unable to send email in its current state");
}
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithREsult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissModalViewControllerAnimated:YES];
}
- (IBAction)addString1:(id)sender {
NSString *string1;
string1 = @"teststring1";
}
- (IBAction)addString2:(id)sender {
NSString *string2;
string2 = @"teststring2";
}
- (IBAction)addString3:(id)sender {
NSString *string3;
string3 = @"teststring3";
}
最佳答案
首先,您需要在 .h 文件中声明字符串,以便可以在整个 .m 中使用它们
@interface ViewController : UIViewController
{
NSString *string1;
NSString *string2;
NSString *string3;
}
然后在邮件编辑器中,您将使用格式化字符串按顺序显示字符串(通过 %@ 转义)
[mailViewController setMessageBody:[NSString stringWithFormat:@"%@, %@, %@",string1,string2,string3] isHTML:NO];
当然,在头文件中声明字符串后,无需在本地声明它们,因此将 IBActions 更改为如下所示:
- (IBAction)addString1:(id)sender
{
string1 = @"teststring1";
}
- (IBAction)addString2:(id)sender
{
string2 = @"teststring2";
}
- (IBAction)addString3:(id)sender
{
string3 = @"teststring3";
}
此外,为了避免将不需要的 (null) 实例插入到消息正文中,我建议您在 viewDidLoad 中为这些字符串指定一个初始空白值。这样,开始时将没有任何内容,但它们不会为零。
- (void)viewDidLoad
{
[super viewDidLoad];
string1 = @"";
string2 = @"";
string3 = @"";
}
关于objective-c - 如何使用 setMessageBody 将 NSString 添加到电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12287277/
我是不是在做一些蠢事?我可以预填写并发送电子邮件,但“\r\n”在 emailBody 中被忽略: - (void) sendEventInEmail { MFMailComposeViewC
我正在尝试实现自动填充电子邮件。我的 emailviewcontroller 在单独的测试环境中正确弹出,但我无法弄清楚如何将字符串添加到消息正文。基本上,我在 GUI 的根 Controller 上
我是一名优秀的程序员,十分优秀!