【问题标题】:Clearing UITextfields with UIButton使用 UIButton 清除 UITextfields
【发布时间】:2016-09-27 13:03:37
【问题描述】:

我有一个包含 5 个 UITextfields 和 1 个 UItextview 的页面。这是一个电子邮件表单,我想要它,所以当您按下发送电子邮件的按钮时,它还会清除文本字段和文本视图。非常重要的是,它仅在为电子邮件收集数据后才执行此操作,因此电子邮件不会为空。

代码:

@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(["wastepin@hotmail.com"])
mailComposerVC.setSubject("New Dumpster")
mailComposerVC.setMessageBody(messageBody, isHTML: false)
return mailComposerVC

页面图片:

【问题讨论】:

  • “仅在为电子邮件收集数据后才执行此操作非常重要”。如何知道数据已被收集?在哪里采集?您可能希望包含该部分,因为它似乎缺少。
  • 很抱歉。正如我所提到的,它是一个邮件表单,在代码中它显示“messagebody”并结合了所有文本字段,即收集数据并将其写入电子邮件的时间。
  • 如果电子邮件没有通过怎么办?我注意到您的代码中有错误检查,尽管它是否包含所有其他问题?您也可以在成功发送视图后将其关闭,并使用可选的“清除字段”按钮将数据留在字段中。
  • 原来的计划也是这样,但我的测试人员认为它没有明确是令人困惑的。

标签: ios xcode swift uibutton uitextfield


【解决方案1】:

试试这个

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

因为text6UITextView,所以分开放。

text6.text = ""

【讨论】:

  • text6 是一个文本视图,这仍然可以使用吗? :)
  • 非常感谢它与所有文本字段一起工作,但是当我添加文本视图时,它显示“UIView 类型的值没有成员”文本“。你知道我该如何解决这个问题吗?: )
【解决方案2】:

在提交时调用的函数中,首先将字段文本的值存储到变量中,然后将所有字段的文本设置为 nil。此时您将获得信息,并且字段将为空。

【讨论】:

  • 您能详细说明一下吗?他们每个人都有一个变量是否重要,或者“消息体”变量是否足够?
  • 它们每个都必须有一个变量。然后,要制作消息正文,只需将它们组合成一个 String 即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
  • 1970-01-01
  • 2015-09-18
  • 2015-04-07
  • 1970-01-01
  • 2016-09-06
相关资源
最近更新 更多