Ios 将从UIPicker中选择的值赋给Swift中的UITextField(以及如何显示和隐藏)

Ios 将从UIPicker中选择的值赋给Swift中的UITextField(以及如何显示和隐藏),ios,swift,uipickerview,ios8,Ios,Swift,Uipickerview,Ios8,标题说明了一切。我试图分配一个值(性别),用户将从UIPicker中选择该值,然后该值将显示为使用Swift的UITextField输入 这是我的密码: class RegistrationViewController: UIViewController, UIPickerViewDelegate, UITextFieldDelegate { @IBOutlet var getGender: UIPickerView! = UIPickerView() @IBOutlet var gende

标题说明了一切。我试图分配一个值(性别),用户将从UIPicker中选择该值,然后该值将显示为使用Swift的UITextField输入

这是我的密码:

class RegistrationViewController: UIViewController, UIPickerViewDelegate, UITextFieldDelegate {

@IBOutlet var getGender: UIPickerView! = UIPickerView()

@IBOutlet var genderTextField: UITextField! = nil

let gender = ["Male", "Female", "Other"]

override func viewDidLoad() {
    super.viewDidLoad()

    self.genderTextField.inputView = pickerView

    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// returns the number of 'columns' to display.
func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int{
    return 1
}

// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int{
    return gender.count
}

func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String! {
    return gender[row]
}

func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{
    genderTextField.text = "\(gender[row])"

}
我知道,如果我使用标签而不是文本字段,并将其格式化为文本字段,这是可以实现的。然后更改标签的值

我还想知道单击标签/文本字段时如何显示/隐藏UIPicker。有人能帮我吗

非常感谢你的建议

干杯


更新:

我已经做了所有的事情,但编译器唯一抱怨的是带有注释//错误的行。正如我提到的,它不仅接受这一点:

self.genderTextField.inputView = pickerView   //ERROR -> Requires more declarations! Read update section below!
它要求我提供额外的声明,例如:

pickerView!(pickerView: UIPickerView?, didSelectRow: Int, inComponent: Int) 

pickerView!(pickerView: UIPickerView?, numberOfRowsInComponent: Int)
Xcode还有一些其他的建议,但我不知道该使用哪一个以及如何使用

救命啊

谢谢

func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{
    textField.text = "\(gender[row])"
}
和显示/隐藏选择器(在viewDidLoad中)


试试这个:self.txtselectarerarate.inputView=UIPickerView()

谢谢您的回复。不过我还有一个问题。如何将名称textField分配给我的UITextField,以便访问实例的方法?我是通过IBOutlet来猜测的?是通过编程还是使用界面生成器?我试图实现self.textfield.inputView=pickerView,但是有很多方法可用,比如:pickerView!(pickerView:UIPickerView?,*)星号可以表示:*didSelectRow:Int,inComponent:Int)*行数组件:Int)等。。等你能进一步帮我吗?感谢您的回复和时间!是的,你应该使用IB插座。紧跟在
类设置之后:UIViewController{
add
@IBOutlet var textField:UITextField!=nil
然后进入你的.storyboard文件,选择文本字段所在的viewController,控制点击并从viewController顶部的黄色图标拖动到textField,你应该会得到一个弹出窗口,点击textField。我已经安排好了一切。我使用了一个IBOutlet作为文本字段,并将其命名为genderTextField,因此现在我可以访问UITextField的方法。但现在我不知道下一步要做什么,因为我遇到了我在上一篇评论中提到的内容
self.textField.inputView = pickerView