У меня есть отдельные файлы для моего 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?