【问题标题】:How to add or replace textfield input text to picker view text in Swift 3如何在 Swift 3 中添加或替换文本字段输入文本到选取器视图文本
【发布时间】:2025-12-01 06:10:01
【问题描述】:

我有一个加载了字符串数组的选择器,我想通过在文本字段中键入来更改附加或编辑字符串并保存在该数组中并在该选择器视图中显示更改。提前致谢。

【问题讨论】:

  • 您要添加还是替换,请提供一些示例。因为您要么替换选择器的 selectedIndex 的文本,要么在数组中添加全新的条目。
  • 我有一个加载了字符串数组的选择器,我想通过在文本字段中键入来更改附加或编辑字符串并保存在数组中并在该选择器视图中显示更改 @Van
  • 根据我对您问题的理解,您可以在 textFieldShouldReturn 或 textfieldDidEndEditing 方法等委托方法中添加文本字段中的文本,并将文本字段的文本添加到数组并同时重新加载选择器。
  • 是的,你能举几个例子吗?
  • 查看答案

标签: ios swift3 uitextfield uipickerview


【解决方案1】:
extension ViewController: UITextFieldDelegate {
func textFieldDidEndEditing(_ textField: UITextField) {
    addIntoArray(text: textField.text)
}

func addIntoArray(text: String?) {
    guard let text = text, text.count > 0 else {
        //for blannk or nil string
        return
    }

    listArray.append(text)
    //reload the picker
    picker.reloadAllComponents() //picker is the instanc of your pickerView
}   
}

试试这个

【讨论】:

  • 但是我需要用我在文本字段中键入的内容替换数组中的那个对象,但它会添加一个对象,并且在导航到另一个页面并返回相同的数组显示时临时保存
  • 您可以检查是否在选择器中选择了该值,然后替换为文本,否则添加。
  • 因为你添加了inputView作为textField的pickerView,所以键盘没有出现。为此,您需要构建工具栏并将其添加为文本字段的 inputAccessoryView。让我们在完成按钮上说你可以为文本字段 resignFirstResponder()。
  • 您也可以添加不同的按钮,例如在工具栏上编辑并将 inputView 设置为 nil 以显示键盘外观,然后点击完成后,您可以相应地替换或添加项目