Skip to main content
 首页 » 操作系统

swift之使用多个 uitextfield 撰写电子邮件(swift)

2024年01月01日35lyj

如何通过 Swift 使用多个 UITextField 撰写电子邮件?似乎我只能在messageBody 下输入一个数据(名为UITextField)。如何将多个 UITextField 添加到我的 messageBody?

import UIKit 
import CoreData 
import MessageUI 
 
class EmailTableViewController: UITableViewController, MFMailComposeViewControllerDelegate, UITextFieldDelegate { 
 
    @IBOutlet weak var name: UITextField! 
    @IBOutlet weak var phone: UITextField 
    @IBOutlet weak var email: UITextField! 
    @IBOutlet weak var base: UITextField! 
    @IBOutlet weak var rig: UITextField! 
    @IBOutlet weak var wellhead: UITextField! 
    @IBOutlet weak var connector: UITextField! 
    @IBOutlet weak var size: UITextField! 
    @IBOutlet weak var depth: UITextField! 
    @IBOutlet weak var pressure: UITextField! 
    @IBOutlet weak var temp: UITextField! 
 
    @IBAction func SendEmailButton(sender: AnyObject) {     
 
        var emailTitle = "Interface Information" 
        var messageBody = name.text 
 
        var toRecipents = ["test.com"] 
        var mc: MFMailComposeViewController = MFMailComposeViewController() 
        mc.mailComposeDelegate = self 
        mc.setSubject(emailTitle) 
        mc.setMessageBody(messageBody, isHTML: false) 
        mc.setToRecipients(toRecipents) 
        self.presentViewController(mc, animated: true, completion: nil) 
 
    } 
 
    func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) { 
        switch result.value { 
        case MFMailComposeResultCancelled.value: 
            println("Mail cancelled") 
        case MFMailComposeResultSaved.value: 
            println("Mail saved") 
        case MFMailComposeResultSent.value: 
            println("Mail sent") 
        case MFMailComposeResultFailed.value: 
            println("Mail sent failure: %@", [error.localizedDescription]) 
        default: 
            break 
        } 
        self.dismissViewControllerAnimated(true, completion: nil) 
 
    } 

请您参考如下方法:

您可以创建一个小辅助函数并将字段放入数组中,如下所示:

func appendTextFromTextField(string: String, textField: UITextField) -> String { 
    return string + textField.text + "\n" 
} 
 
@IBAction func SendEmailButton(sender: AnyObject) { 
 
    var fields: [UITextField] = [name, phone, email, base, rig, wellhead, connector, 
        size, depth, pressure, temp] 
    var messageBody = "" 
 
    for f in fields { 
        messageBody = appendTextFromTextField(messageBody, textField: f) 
    } 
 
    // etc. 
 
}