Ios 将从UIPicker中选择的值赋给Swift中的UITextField(以及如何显示和隐藏)
标题说明了一切。我试图分配一个值(性别),用户将从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
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