如何在1个选择器视图中使用3个文本字段

时间:2019-04-09 00:13:00

标签: ios swift uipickerview uipickerviewdatasource

我正在尝试查看是否可以有3个文本字段,3个变量,但使用1个选择器查看器。下面是我正在使用的代码,但没有得到我所需要的代码。

我能够毫无问题地设置3个文本字段和3个pickerviews。

import UIKit

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate {
    @IBOutlet weak var hospNameField: UITextField!
    @IBOutlet weak var teamNameField: UITextField!
    @IBOutlet weak var mdNameField: UITextField!
    @IBOutlet weak var selectionsPickerView: UIPickerView!

    var hosp = ["hosp1", "hosp2", "hosp3"]
    var team = ["team1", "team2", "team3"]
    var mds = ["MD1", "MD2", "MD3"]

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        if pickerView == selectionsPickerView {
        return hosp.count
        } else if pickerView == selectionsPickerView {
          return team.count
        } else if pickerView == selectionsPickerView {
          return mds.count
        }
        return 1
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        if pickerView == selectionsPickerView {
            return hosp[row]
        } else if pickerView == selectionsPickerView {
          return team[row]

        } else if pickerView == selectionsPickerView {
          return mds[row]
        }
         return ""
    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        if pickerView == selectionsPickerView {
            self.hospNameField.text = self.hosp[row]
            self.selectionsPickerView.isHidden = true
        } else if pickerView == selectionsPickerView {
          self.teamNameField.text = self.team[row]
          self.selectionsPickerView.isHidden = true
        } else if pickerView == selectionsPickerView {
          self.mdNameField.text = self.mds[row]
          self.selectionsPickerView.isHidden = true
        }
    }

    func textFieldDidEndEditing(_ textField: UITextField) {
        if (textField == self.hospNameField) {
        self.selectionsPickerView.isHidden = false
        }
        else if (textField == self.teamNameField) {
        self.selectionsPickerView.isHidden = false
        }
         else if (textField == self.mdNameField) {
         self.selectionsPickerView.isHidden = false
     }
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
}

0 个答案:

没有答案