gpt4 book ai didi

ios - 在 pickerView 中选择的值后显示文本

转载 作者:行者123 更新时间:2023-11-30 12:03:45 25 4
gpt4 key购买 nike

Screesnshot

我想在用户从两个 pickerView 中选择值后在 viewController 中获取文本。

不需要计算。

举个例子:我点击“25 Jahre”上的第一个选择器,在第二个选择器中选择“50 Euro”。现在我需要文本字段下的文本。

import UIKit

class ViewController3Rechner: UIViewController, UITextFieldDelegate, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var LaufZeitText: UITextField!
@IBOutlet weak var BeitragText: UITextField!

var Laufzeit = ["10 Jahre", "15 Jahre", "20 Jahre", "25 Jahre", "30 Jahre", "35 Jahre", "40 Jahre"]
var Beitrag = ["50 Euro", "75 Euro", "100 Euro", "125 Euro", "150 Euro", "175 Euro", "200 Euro", "250 Euro", "300 Euro"]

let picker = UIPickerView()
let beitrag = UIPickerView()

override func viewDidLoad() {
super.viewDidLoad()

picker.delegate = self
picker.dataSource = self
beitrag.delegate = self
beitrag.dataSource = self

// binding textfield to picker
LaufZeitText.inputView = picker
BeitragText.inputView = beitrag
}

func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
var countrows : Int = Laufzeit.count
if pickerView == beitrag {
countrows = self.Beitrag.count
}

return countrows
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == picker {
let titleRow = Laufzeit[row]
return titleRow
} else if pickerView == beitrag {
let titleRow = Beitrag[row]
return titleRow
}

return ""
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView == picker {
self.LaufZeitText.text = self.Laufzeit[row]

self.view.endEditing(true)

} else if pickerView == beitrag {
self.BeitragText.text = self.Beitrag[row]

self.view.endEditing(true)
}
}
}

最佳答案

您当前的代码应该已经允许在选择器 View 中选择一行时单独填充每个文本字段。

根据我对您问题的理解,您希望仅当两个选择器都选择了一行时才填充两者。

创建两个新的String变量,laufZeitbeitrag

var laufZeit: String?
var beitrag: String?

pickerView(_ pickerView: UIPickerView, didSelectRow 函数中设置这些字符串,替换 textFields 文本属性上的设置。

if pickerView == picker {
laufZeit = self.Laufzeit[row]

self.view.endEditing(true)

} else if pickerView == beitrag {
beitrag = self.Beitrag[row]

self.view.endEditing(true)
}

有两种方法可以执行下一步,要么在每个新 String 变量的 didSet 中,要么就在上面的 if/else 语句下面。

无论哪种方式,您都会希望它看起来像这样:

if let laufZeitString = laufZeit, let beitragString = beitrag {
self.LaufZeitText.text = laufZeitString
self.BeitragText.text = beitragString
}

因此,如果两个变量均已设置,则两个文本字段都将被填充。我会将其放入其自己的函数中,也许是 populateTextFields()

关于ios - 在 pickerView 中选择的值后显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46899683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com