我正在创建注册表单,我必须使用选择器 View 将性别包含在文本字段中。但是,我得到的是问号而不是男性和女性。
这是我的代码:
@IBOutlet weak var genderfield: UITextField!
let pickerView = UIPickerView()
let gender1 = ["Male", "Female"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return gender1.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return gender1[row]
}
func pickerView(_ pickerView:UIPickerView,didSelectRow row: Int,forComponent component: Int){
genderfield.text = gender1[row]
genderfield.resignFirstResponder()
}
在 ViewDidLoad 中:
pickerView.delegate = self
pickerView.dataSource = self
genderfield.inputView = pickerView
我不认为我的代码有什么问题。我已经用谷歌搜索了几个小时。
最佳答案
你得到问号是因为你的 titleForRow
委托(delegate)方法有错误的签名。
改变:
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return gender1[row]
}
到:
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return gender1[row]
}
注意在 (
之后添加 _
。
关于ios - 我无法在注册表单中添加性别的 UIPickerview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48689821/