ios - 我无法在注册表单中添加性别的 UIPickerview

标签 ios swift uipickerview

我正在创建注册表单,我必须使用选择器 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/

相关文章:

iphone - 即使 userInteractionEnabled 设置为 NO,UITextField 也会显示光标

ios - Xamarin.Forms WebView、WKWebViewConfiguration 和发送 "Mobile" header

ios - swift + Parse.com : how to fetch user relation using a join table

ios - 搜索 firebase 数据 : iOS, Swift

ios - UIToolbar 在带有 UIPickerView 的自定义 UITableViewCell 中没有响应

ios - 从外部类管理 UIPickerView - 使用 Swift

ios - DatePickerView 日期与控制台打印的日期不一致

ios - tabBarController didSelect 没有被调用

ios - 从应用程序委托(delegate)访问导航 Controller

ios - Production Push notifications 是否可以在不重新提交应用程序的情况下解决?