ios - 当用户点击 UITextfield 时以编程方式实现 UIPickerView

标签 ios iphone swift uipickerview

我目前正在做一个小项目,我有一个 viewController,它有 4 个文本字段,其中 3 个工作正常。他们接受 String 对象。然而,第 4 个 textField 应该调出一个带有 4 个可选项目的 UIPickerView。

到目前为止,这是我在我的 Controller 中实现的:

     @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 和 Storyboard的清晰示例。我宁愿不在 Storyboard中拖动 UIPickerView,而是我尝试实现的方式。谢谢

最佳答案

您可以将 UIPickerView 作为 inputView 用于要在其中显示选择器 View 的 TextField。 在这种情况下,您也不需要最初隐藏选择器 View 。

pickerTextfield.inputView = itemPicker

当您将 UIPickerView 用作任何 UITextFieldinputView 时,当您点击 TextField 而不是默认值时键盘 PickerView 将显示。

关于ios - 当用户点击 UITextfield 时以编程方式实现 UIPickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29360636/

相关文章:

iphone - 通知用户应用程序商店中应用程序的新更新作为警报并自动在 iPhone 中安装更新版本?

ios - 使用 ooVoo 框架的示例 swift 项目时出现 'archive' 时的链接器错误

ios - 如何使用 Swift 3 摆脱 `forKey` 中的 `UserDefaults` 字符串文字?

string - 将 .characters 应用于字符串时,我在这里看到什么返回?

ios - 当用户的设备连接到互联网时,如何在iOS上运行方法?

ios - 在 iOS 上使用私钥加密数据

javascript - 如何使用 JavaScript 识别移动设备

iphone - 重新加载表格时如何更改 TableViewcell 的导出

ios - Swift,创建一个通用的 UIViewController

ios - UIButton sizeToFit 不起作用