我目前正在开发一个小项目,我有一个viewController有4个textFields,其中3个工作正常.它们采用String对象.但是,第4个textField应该会显示一个带有4个可选项的UIPickerView.
到目前为止,这是我在我的控制器中实现的:
@IBOutlet var pickerTextfield: UITextField!
@IBOutlet var itemPicker: UIPickerView! = UIPickerView()
pickerTextfield是第4个字段的UITextField对象.
itemPicker是一个未链接的UIPickerView,我想以编程方式创建.
在这些属性的正下方,我有一个UIPickerView对象的项目数组:
var seasonalItems = ["Spring", "Summer", "Fall", "Winter"]
在我的viewDidLoad方法中,我有如下:
itemPicker.hidden = true;
pickerTextfield.text = seasonalItems[0]
pickerTextfield.delegate = self
其余的实施:
//这些行下面是Picker的实现
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对象时,它显示了数组的第一项(Spring)但是在UITextField对象中的文本中却没有显示UIPickerView对象与其他可选项目在哪里我可以选择一个,然后在选中时隐藏它.
我的问题是,我在哪里或者我做错了什么?我一直试图自己解决这个问题,但我似乎没有得到Swift和故事板的清晰例子.我更倾向于不在故事板中拖动UIPickerView,而是我试图实现的方式.谢谢
最佳答案 您可以将UIPickerView作为您要显示选择器视图的TextField的inputView.
在这种情况下,您也不需要最初隐藏选择器视图.
pickerTextfield.inputView = itemPicker
当您使用UIPickerView作为任何UITextField的inputView时,当您点击TextField而不是默认键盘PickerView将显示.