为达到这个 isEnabled 没有用。你需要使用 isEditing 如果用户点击任何一个,那将是真的 UITextField 你的代码将是:
isEnabled
isEditing
UITextField
import UIKit import Foundation class ViewController: UIViewController { var strBlood = ["O+","O-","O","A","B+"] var strcountry = ["India","Canada","USA"] var strgender = ["Male","Female"] var selectedBlood: String? var selectedCountry: String? var selectedGender: String? @IBOutlet weak var txtGender: UITextField! @IBOutlet weak var txtCountry: UITextField! @IBOutlet weak var lblBloodGroup: UITextField! override func viewDidLoad() { super.viewDidLoad() self.chooseCountry() self.chooseBlood() self.choosGender() } func chooseBlood(){ let bloodPicker = UIPickerView() bloodPicker.delegate = self self.lblBloodGroup.inputView = bloodPicker } func chooseCountry(){ let countryname = UIPickerView() countryname.delegate = self self.txtCountry.inputView = countryname } func choosGender() { let gender1 = UIPickerView() gender1.delegate = self self.txtGender.inputView = gender1 } } extension ViewController : UIPickerViewDelegate , UIPickerViewDataSource { func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { if lblBloodGroup.isEditing { print("BLOOD SELECTED") return strBlood.count } else if txtCountry.isEditing{ print("COUNTRY SELECTED") return strcountry.count }else { print("GENDER SELECTED") return strgender.count } } func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { if lblBloodGroup.isEditing{ print("BLOOD SELECTED1") return strBlood[row] }else if txtCountry.isEditing{ return strcountry[row] }else { return strgender[row] } } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { if lblBloodGroup.isEditing{ selectedBlood = strBlood[row] lblBloodGroup.text = selectedBlood }else if txtCountry.isEditing{ selectedCountry = strcountry[row] txtCountry.text = selectedCountry }else { selectedGender = strgender[row] txtGender.text = selectedGender } } }
结果将是: