我正在尝试查看是否可以有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
}
}