Picker View - текстовое поле не обновляется - PullRequest
1 голос
/ 20 февраля 2020

Я пытаюсь сделать выпадающий список и экспериментирую с использованием 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)")
    }

}

1 Ответ

1 голос
/ 12 марта 2020

Вы забыли добавить делегат и источник данных

    override func viewDidLoad()
     {
        super.viewDidLoad()
     // Do any additional setup after loading the view.
        self. pickerBox.delegate = self
        self. pickerBox.dataSource = self

     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...