UIPickerView в V C - передача данных из функции didSelectRow в UITextField.text в UIView - PullRequest
0 голосов
/ 26 января 2020

У меня есть отдельные файлы для моего UIView и его соответствующего UIViewController. У меня есть UITextField в моем UIVew, и я хочу, чтобы текст, отображаемый в поле, отображался сразу после выбора строки в UIPickerView. Теперь я завершаю редактирование и снова начинаю редактирование, чтобы свойство UITextField.text обновлялось до содержимого, выбранного в строке.

Я настроил свой код следующим образом:

UITextField in UIView:
        let presentSelectedCaloriesTextField: UITextField = {
       let textField = UITextField()
        textField.layer.borderColor = UIColor.black.cgColor
        textField.layer.borderWidth = 1
        textField.addTarget(self, action: #selector(handleSelectCalories), for: .editingDidBegin)
        return textField
    }()

Обработчик:

@objc func handleSelectCalories() {
    selectCaloriesDelegate?.handleSelectCalories(for: self)
}

Делегат:

UIView.selectCaloriesDelegate = self

В моем UIViewController:

    //    MARK: - Handle selected calories delegate
    func handleSelectCalories(for view: RaceView) {

//        Create picker view for selection of calories
        let challengeWeighedCaloriesPicker = UIPickerView()

//        Set datasoruce and delegate of picker view to this vc send and receive content
        challengeWeighedCaloriesPicker.dataSource = self
        challengeWeighedCaloriesPicker.delegate = self

//        Set the picker view as the input keyboard for select calories textfield
        view.presentSelectedCaloriesTextField.inputView = challengeWeighedCaloriesPicker

//        UPDATES ONLY AFTER I'VE SELECTED A ROW AND END AND START EDITING IN TEXTFIELD AGAIN
        view.presentSelectedCaloriesTextField.text = selectedCalories
    }

Кто-то знает, как это сделать, чтобы свойство UITextField.text было установлено сразу, когда я прокручиваю строки UIPickerView?

...