【发布时间】:2017-05-21 18:57:48
【问题描述】:
我构建了一个 UIPickerView,让用户可以从美国的所有州中进行选择。我的目标是让用户点击 UITextField 并让 UIPickerView 弹出选项。如何加入 UITextField 和 UIPickerView?
谢谢!
【问题讨论】:
-
扫描these search results 获取大量示例。
标签: swift uikit uipickerview
我构建了一个 UIPickerView,让用户可以从美国的所有州中进行选择。我的目标是让用户点击 UITextField 并让 UIPickerView 弹出选项。如何加入 UITextField 和 UIPickerView?
谢谢!
【问题讨论】:
标签: swift uikit uipickerview
// 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])"
}
【讨论】:
我必须为一个项目做同样的事情,所以我创建了一个自定义控件来执行此操作。
您可以在 github https://github.com/CarterMiller/TextFieldExtensions 上获取代码并按原样使用它,或者作为您自己版本的起点
您可以扩展 UITextField,并在 'becomeFirstResponder' 中设置所有内容
在我的示例中,我将 UITableView 显示在弹出视图中,但您同样可以将其显示在同一个 ViewController 中的某个位置
【讨论】: