在UITextField中获取数据写入



我正在创建一个用于进行测量的表单,因此我有几个文本文件。我需要能够检索用户在textField中写的内容。我试了好几种方法,但都找不到到达那里的路。你能给我一个线索吗?

这是我的代码:

import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
var myTextField = UITextField()

@IBOutlet weak var wristFlex: UITextField!
@IBOutlet weak var wristExtension: UITextField!
@IBOutlet weak var firstPhalanx: UITextField!
@IBOutlet weak var secondPhalanx: UITextField!
@IBOutlet weak var thirdPhalanx: UITextField!
@IBOutlet weak var forearmLenght: UITextField!
@IBOutlet weak var handLenght: UITextField!
@IBOutlet weak var fingerLenght: UITextField!
@IBOutlet weak var forearmCirecumference: UITextField!
@IBOutlet weak var wristCirecumference: UITextField!
@IBOutlet weak var fingerCirecumference: UITextField!
@IBOutlet weak var handCirecumference: UITextField!
@IBOutlet weak var validatedPressed: UIButton!


override func viewDidLoad() {
super.viewDidLoad()
wristFlex.delegate = self
wristExtension.delegate = self
firstPhalanx.delegate = self
secondPhalanx.delegate = self
thirdPhalanx.delegate = self
forearmLenght.delegate = self
handLenght.delegate = self
fingerLenght.delegate = self
forearmCirecumference.delegate = self
wristCirecumference.delegate = self
fingerCirecumference.delegate = self
handCirecumference.delegate = self
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(textFieldTextDidChange), name: UITextField.textDidChangeNotification, object: nil)
}
// Notifications:
@objc  func textFieldTextDidChange(ncParam: NSNotification) {
print("UItextFieldTextDidChange = (ncParam)")
}
@objc func keyboardWillHide(notification: NSNotification) {
// move back the root view origin to zero
self.view.frame.origin.y = 0
}
@objc func keyboardWillShow(notification: NSNotification) {
guard let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue else {
// if keyboard size is not available for some reason, dont do anything
return
}
// move the root view up by the distance of keyboard height
self.view.frame.origin.y = 0 - keyboardSize.height
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
}

@IBAction func validatedPressed(_ sender: AnyObject) {
if wristFlex.text == "" || wristExtension.text == "" || firstPhalanx.text == "" || secondPhalanx.text == "" || thirdPhalanx.text == "" || forearmLenght.text == "" || handLenght.text == "" || fingerLenght.text == "" || forearmCirecumference.text == "" || wristCirecumference.text == "" || fingerCirecumference.text == "" || handCirecumference.text == "" {
let alertController = UIAlertController(title: "Erreur", message: " Tous les champs ne sont pas remplis", preferredStyle: .alert)
let alertAction = UIAlertAction(title: "Ok", style: .default, handler: nil)
alertController.addAction(alertAction)
present(alertController, animated: true, completion: nil)
return
}
dismiss(animated: true, completion: nil)
}
internal func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
print("")
return true
}
}

您可以使用UITextfieldDelegate中的textFieldDidEndEditing方法。当用户完成输入时,会调用此方法。然后您可以使用textField.text访问变量

下面的示例是一个只有一个文本字段的情况的实现。在您的情况下,您需要区分不同的文本字段。

func textFieldDidEndEditing(_ textField: UITextField,
reason: UITextField.DidEndEditingReason){
if let value = textField.text  {
print(value)
}
}

希望这能有所帮助!

要检索用户在UITextFields中写入的内容,您可以使用textField.text.之类的东西访问他们的文本属性

更具体地说,在您的情况下,像wristFlex.textthirdPhalanx.text这样的东西可以对所有UITextFields起作用,依此类推。

希望这能帮助到别人!

最新更新