选择器视图 - 文本字段未更新
Posted
技术标签:
【中文标题】选择器视图 - 文本字段未更新【英文标题】:Picker View - Textfield not updating 【发布时间】:2020-02-20 10:12:21 【问题描述】:我正在尝试制作一个下拉列表并尝试使用 PickerView。但是在选择器视图中选择项目后,我找不到更新文本字段的方法。
我怀疑 pickerView 函数的“didSelectRow”根本没有被调用,虽然我不知道如何检查它。 (我试图打印选定的行,但没有任何反应)。
这就是我在 Interface Builder 中所做的:
创建一个文本字段。 将 Picker View 从 Library 拖到界面中。
连接插座和 PickerView。
ctl 将 PickerView 拖到 View Controller 的黄色图标上,然后选择委托和数据源。
ctl 将文本字段拖到视图控制器的黄色图标上,然后选择委托。
希望有人能提供帮助。
以下是我的代码:
导入 UIKit
类 ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource
@IBOutlet weak var pickerBox: UIPickerView!
@IBOutlet weak var textBox: UITextField!
var list = ["Item 1", "Item 2", "Item 3"]
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
func numberOfComponents(in pickerView: UIPickerView) -> Int
return 1
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
return list.count
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
var listingTypesArray = Array(list)
return listingTypesArray[row]
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, forComponent component: Int)
self.textBox.text = list[row]
print("Row: \(row)")
【问题讨论】:
【参考方案1】:您忘记添加委托和数据源
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
self. pickerBox.delegate = self
self. pickerBox.dataSource = self
【讨论】:
以上是关于选择器视图 - 文本字段未更新的主要内容,如果未能解决你的问题,请参考以下文章
自定义表格视图单元格中的 UITextField。点击单元格/文本字段时显示选择器视图