您是否还有其他用户将要填写的文本字段,或者这是唯一的字段?如果还有其他字段要完成,只需添加一个带有操作的“提交”按钮,然后绑定您的函数以通过这种方式将所有文本字段推送到您的服务器。
如果您的电子邮件地址只有一个字段,那么您还有另一种解决方案。
你在这里@IBAction func textFieldEditingDidChange(sender: AnyObject) { 有一个动作,你最可能想做的是在文本字段上实现一个委托方法。这样,当 textField 更改时,您的函数将被调用。只需将默认文本放在界面构建器属性检查器窗格的占位符中,或将其添加到加载代码的视图中。 textfield.text = "default text"。在任何情况下,除非用户编辑 textField,否则该函数不会触发。如果用户不编辑该字段,您可能需要添加另一种方式来提取此数据,您可以将推送到服务器功能与 segue 或调用 viewWillDisappear().
联系起来
有几个步骤可以切换到委托方法。 This link has a good example of what is needed.
首先你需要在类中添加一个 UITextFieldDelegate
class ViewController: UIViewController, UITextFieldDelegate {
然后在您的 viewDidLoad() 中向您的文本字段添加一个委托并设置您的默认文本。
override func viewDidLoad() {
textfield.delegate = self
textfield.text = "default text"
}
现在添加您的委托方法。
func textFieldDidEndEditing(_ textField: UITextField) {
print("textField: \(textfield.text!)")
}
最重要的是,将您的操作更改为插座,并确保在连接检查器中删除发送事件。
@IBOutlet weak var textfield: UITextField!