Я пытаюсь сделать выпадающий список и экспериментирую с использованием PickerView. Но я не смог найти способ обновить текстовое поле после выбора элементов в представлении выбора.
Я подозреваю, что «didSelectRow» функции pickerView вообще не вызывался, хотя я не знаю, как это сделать. Проверь это. (Я пытался напечатать выбранную строку, но ничего не происходит).
Это то, что я сделал в Интерфейсном Разработчике:
создайте текстовое поле. перетащите вид выбора из библиотеки в интерфейс.
соедините розетки и PickerView.
ctl перетащите PickerView на желтый значок в View Controller и выберите делегат и источник данных.
ctl перетащите текстовое поле на желтый значок в View Controller и выберите делегат.
надеюсь, что кто-то может помочь.
следующие мои коды:
import UIKit
class 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)")
}
}