当用户点击UITextfield时,以编程方式实现UIPickerView
问题描述:
我目前正在研究一个小项目,并且我有一个viewController,它有4个textFields,它们可以正常工作。他们采取字符串对象。但是,第4个textField应该带有一个带有4个可选项目的UIPickerView。当用户点击UITextfield时,以编程方式实现UIPickerView
到目前为止,这是我在我的控制器实现这一点:
@IBOutlet var pickerTextfield: UITextField!
@IBOutlet var itemPicker: UIPickerView! = UIPickerView()
的pickerTextfield
是UITextField对象是第四场。 itemPicker
是一个未链接的UIPickerView,我想以编程方式创建。
右下面这些属性,我有一个项目为UIPickerView
对象的数组:
var seasonalItems = ["Spring", "Summer", "Fall", "Winter"]
在我viewDidLoad中方法我有这个如下:
itemPicker.hidden = true;
pickerTextfield.text = seasonalItems[0]
pickerTextfield.delegate = self
而其余的的实施:
// Below the lines i s的文字的选择器
func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int{
return 1
}
// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int{
return seasonalItems.count
}
func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String! {
return seasonalItems[row]
}
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{
pickerTextfield.text = seasonalItems[row]
itemPicker.hidden = true;
}
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
itemPicker.hidden = false
return false
}
所以从这个最后的结果是,当我点击在该应用中的pickerTextfield
对象,它显示了阵列的第一项(弹簧),但在UITextField对象内执行,但它不会显示UIPickerView对象与其他可选项目,我可以选择其中一个,然后在选定时隐藏它。
我的问题是,我在哪里或在做什么错在这里?我一直试图自己弄清楚这一点,但我似乎没有得到很好的清晰的例子与斯威夫特和故事板。我宁愿不要在故事板中拖动一个UIPickerView,而是以我试图实现的方式。谢谢
答
您可以给UIPickerView
作为inputView
为您的TextField
其中您要显示选取器视图。 在这种情况下,您也不需要初始隐藏选取器视图。
pickerTextfield.inputView = itemPicker
当您使用UIPickerView
任何UITextField
的inputView
那么当你在TextField
,而不是默认的键盘PickerView
将显示挖掘。
任何人有任何其他方法?这仍然不起作用 – Amit 2015-04-04 04:41:14
@认为它似乎工作。你遇到了什么问题? – webjunkie 2016-08-11 02:16:29