gpt4 book ai didi

ios - 立即用 UIPickerView 选项填充 UITextField

转载 作者:行者123 更新时间:2023-11-28 14:06:01 25 4
gpt4 key购买 nike

我的应用程序使用由 UIPickerView 填充的 UITextField,如所附的屏幕截图。下面是如何设置的示例。

目前,当点击 UITextField 时,它会弹出 UIPickerView,但是直到 UIPickerView滚动(例如,要在下面的示例中让 UITextField 填充“是,手术”,用户必须首先滚动到“是,PCI <6 小时前”,然后再次返回)。

如何在点击 UITextField 后立即使用 UIPickerView 的第一行来填充该字段?

let prevCardiacIntervPickerView = UIPickerView()  
prevCardiacIntervPickerView.delegate = self
prevCardiacIntervPickerView.tag = 1
prevCardiacIntervPickerField.inputView = prevCardiacIntervPickerView
var prevCardiacIntervPickerOption = ["Yes, surgery", "Yes, PCI <6h ago", "Yes, PCI >6h ago", "No"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView.tag == 1 {
return prevCardiacIntervPickerOption.count
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView.tag == 1 {
return prevCardiacIntervPickerOption[row]
}
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView.tag == 1 {
prevCardiacIntervPickerField.text = prevCardiacIntervPickerOption[row]
}
}

Example screenshot

最佳答案

你可以修改下面的函数来

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if row.index == 1 && textField.text.count == 0 {
// set titleForRow to the UITextField
}
if pickerView.tag == 1 {
return prevCardiacIntervPickerOption[row]
}
}

检查 UITextfield 是否为 empty 并且 row.indexone 那么值titleForRow 应该填充到指定的 UITextfield

其他快速解决方案可能是,在 viewDidAppear 本身中用 prevCardiacIntervPickerOption[0] 填充 UITextField。但在这种情况下,UITextfield 将填充第一个数组元素的默认值。如果你想保持 UITextfield 为空直到它被选中一次然后去第一个解决方案。

关于ios - 立即用 UIPickerView 选项填充 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52966253/

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