如何使用 UIPickerView 来确定 UITextField 的值?

Posted

技术标签:

【中文标题】如何使用 UIPickerView 来确定 UITextField 的值?【英文标题】:How do you use a UIPickerView to determine the value of a UITextField? 【发布时间】:2017-05-21 18:57:48 【问题描述】:

我构建了一个 UIPickerView,让用户可以从美国的所有州中进行选择。我的目标是让用户点击 UITextField 并让 UIPickerView 弹出选项。如何加入 UITextField 和 UIPickerView?

谢谢!

【问题讨论】:

扫描these search results 获取大量示例。 【参考方案1】:
    // define variables 
    var timeSlotsPickerView = UIPickerView()
    @IBOutlet weak var timeSlotTextField: BasicTextField!


     override func viewDidLoad() 
            super.viewDidLoad()
            timeSlotsPickerView.delegate = self
            timeSlotTextField.inputView = timeSlotsPickerView // textfield inputview will open pickerview
        

use the delegate and datasource methods of pickerview

 func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int 
        return array.count
    

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? 
        return array[row]
    

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
        timeSlotTextField.text = "\(array[row])"
    

【讨论】:

【参考方案2】:

我必须为一个项目做同样的事情,所以我创建了一个自定义控件来执行此操作。

您可以在 github https://github.com/CarterMiller/TextFieldExtensions 上获取代码并按原样使用它,或者作为您自己版本的起点

您可以扩展 UITextField,并在 'becomeFirstResponder' 中设置所有内容

在我的示例中,我将 UITableView 显示在弹出视图中,但您同样可以将其显示在同一个 ViewController 中的某个位置

【讨论】:

谢谢拉塞尔。不完全是我要找的东西,但我喜欢图书馆的想法。干得好

以上是关于如何使用 UIPickerView 来确定 UITextField 的值?的主要内容,如果未能解决你的问题,请参考以下文章

UIPickerView 选择更新 UITextFields 的 NSArray

Swift - UIPickerView 子视图中没有出现工具栏完成按钮

如何获取 UIPickerView 中组件的位置?

UIPickerView 列标题

如何防止在拖动 UIPickerView 时触发按钮?

如何在 UIPickerView 中添加部分标题?