2016-05-29 3 views
-1

У меня есть страница с 5 UITextfields и 1 UItextview. Это электронная почта, и я хочу, чтобы это было, когда вы нажимаете кнопку, которая отправляет электронное письмо, она также очищает текстовые поля и текстовое поле. Очень важно, чтобы он сделал это только после того, как данные были собраны для электронной почты, поэтому электронное письмо не будет пустым.Очистка полей UIText с UIButton

Код:

@IBOutlet var text1: UITextField! 
@IBOutlet var text2: UITextField! 
@IBOutlet var text3: UITextField! 
@IBOutlet var text4: UITextField! 
@IBOutlet var text5: UITextField! 
@IBOutlet var text6: UITextView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.text1.delegate = self 
    self.text2.delegate = self 
    self.text3.delegate = self 
    self.text4.delegate = self 
    self.text5.delegate = self 

    // Do any additional setup after loading the view. 

} 
override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 
@IBAction func sendEmail(sender: AnyObject) {  let mailComposeViewController = configuredMailComposeViewController() 



if MFMailComposeViewController.canSendMail() { 
self.presentViewController(mailComposeViewController, animated: true, completion: nil) 
} else { 
self.showSendMailErrorAlert() 
} 
func configuredMailComposeViewController() -> MFMailComposeViewController { 
let mailComposerVC = MFMailComposeViewController() 
mailComposerVC.mailComposeDelegate = self // Extremely important to set the --mailComposeDelegate-- property, NOT the --delegate-- property 
let messageBody = text1.text!+"\n"+text2.text!+"\n"+text3.text!+"\n"+text4.text!+"\n"+text5.text!+"\n"+text6.text! 
mailComposerVC.setToRecipients(["[email protected]"]) 
mailComposerVC.setSubject("New Dumpster") 
mailComposerVC.setMessageBody(messageBody, isHTML: false) 
return mailComposerVC 

Изображение страницы: Mail form page

+0

«Очень важно, чтобы он сделал это только после того, как данные были собраны для электронной почты». Как узнать, что данные были собраны? Собрали где? Возможно, вы захотите включить эту часть, поскольку она, по-видимому, отсутствует. –

+0

Извините. Как я уже упоминал, это почтовая форма, а в коде он говорит «messagebody» и объединяет все текстовые поля, то есть когда данные собираются и отправляются по электронной почте. –

+0

Что делать, если письмо не проходит? Я заметил, что у вас есть проверка ошибок в вашем коде, хотя это все включено, что оно защищает любые другие проблемы? Вы также можете отклонить представление после его успешной отправки и оставить данные в полях с необязательной кнопкой «clear fields». –

ответ

0

Попробуйте

for textField in [text1, text2, text3,text4, text5] { 
    textField.text = "" 
} 

Поскольку text6 является UITextView, поставить его отдельно.

text6.text = "" 
+0

text6 - это текстовое изображение, будет ли это работать с этим? :) –

+0

Да. Он по-прежнему будет работать. – penatheboss

+0

Большое спасибо, что он работал со всеми текстовыми полями, но когда я добавляю текстовое представление, он говорит: «Значение типа UIView не имеет текстового элемента». Знаете ли вы, как я мог это исправить? :) –

0

В функции, которая вызывается на представлении, сначала сохранить значения текста полей к переменным, то после этого установите текст в ноль для всех полей. В этот момент у вас будет информация, и поля будут пустыми.

+0

Вы могли бы немного доработать? важно ли, чтобы у каждого из них была переменная или была переменной «messagebody»? –

+0

Они должны иметь переменную. Затем, чтобы создать тело сообщения, просто объедините их в «String», но вы считаете нужным. –

Смежные вопросы