在 swift 5.1 中获取文本字段输入并将其插入选择器

Taking textfield input and inserting it into a picker in swift 5.1

我正在处理 swift 5.1 中处理选取器的初学者项目。 目前,我有一个带有一些名称的选择器和两个名为 Insert 和 Replace 的按钮。 我希望用户能够在文本字段中输入名称并添加该名称 如果用户按下插入按钮或用该名称替换当前选择的名称,则显示到选择器 如果用户按下替换按钮,则在选择器中。在它下面是我目前拥有的代码。

import UIKit

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {

    private let selectNames = [ "Charles", "Tim", "Bob", "Kim", "Lisa"]

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


    @IBOutlet weak var picker: UIPickerView!
    @IBAction func onSelectPressed(_ sender: UIButton) {

        let row = picker.selectedRow(inComponent: 0)
        let selected = selectNames[row]
        let title = "You Selected \(selected)!"

        let alert = UIAlertController(
            title: title,
            message: "Thank you for choosing",
            preferredStyle: .alert)
        let action = UIAlertAction(
            title: "You're welcome",
            style: .default,
            handler: nil)
        alert.addAction(action)
        present(alert, animated: true, completion: nil)
    }



    //MARK:-
    // MARK: Picker Data Source Methods

    func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1
    }
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return selectNames.count
    }

    // MARK: Picker Delegate Methods

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return selectNames[row]

    }


}

在插入按钮上,您将创建一个接受 uitextfields 字符串并将其添加到 selectNames 数组的函数。

然后使用 selctNames.Count 作为行数。

在插入按钮上使用的函数中刷新选择器。