ios - 如何多次使用 UIPickerView 和 TextField ?

标签 ios swift uipickerview textfield pickerview

下面是我的代码,这允许一个 Textfield 有一个弹出的 pickerView 作为输入源。我想知道我需要添加什么才能允许第二个 TextField 也有一个弹出的 pickerView 作为输入源。

我已设法使firstName文本字段正常工作,但未能使secondNames正常工作。

class RefereeViewController: UIViewController, UIPickerViewDelegate,UIPickerViewDataSource, UITextFieldDelegate, UINavigationControllerDelegate
{

@IBOutlet weak var firstNameTextField: UITextField!

@IBOutlet weak var secondNameTextField: UITextField!


var firstNames = ["Lewis", "Jason","Alex","Mason"]

var secondNames = ["Davies", "Jones","Rees","Kristensen"]


var pickerView = UIPickerView()

override func viewDidLoad()

 {

super.viewDidLoad()

pickerView.delegate = self

pickerView.dataSource = self

        firstNameTextField.inputView = pickerView
        firstNameTextField.textAlignment = .center
        firstNameTextField.placeholder = "Select Name"
}

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

public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
    {

            return firstNames.count

    }

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

        return firstNames[row]

    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
    {
            firstNameTextField.text = reports[row]
    }

最佳答案

class RefereeViewController: UIViewController, UIPickerViewDelegate,UIPickerViewDataSource, UITextFieldDelegate, UINavigationControllerDelegate
{

    @IBOutlet weak var firstNameTextField: UITextField!

    @IBOutlet weak var secondNameTextField: UITextField!


    var firstNames = ["Lewis", "Jason","Alex","Mason"]

    var secondNames = ["Davies", "Jones","Rees","Kristensen"]


    let firstNamePicker = UIPickerView()
    let secondNamePicker = UIPickerView()

    override func viewDidLoad()

    {

        super.viewDidLoad()

        firstNamePicker.delegate = self
        firstNamePicker.dataSource = self
        secondNamePicker.delegate = self
        secondNamePicker.dataSource = self

        firstNameTextField.inputView = firstNamePicker
        firstNameTextField.textAlignment = .center
        firstNameTextField.placeholder = "Select First Name"

        secondNameTextField.inputView = secondNamePicker
        secondNameTextField.textAlignment = .center
        secondNameTextField.placeholder = "Select Second Name"

    }

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

    public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
    {

        return pickerView == firstNamePicker ? firstNames.count : secondNames.count

    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
    {
        if pickerView == firstNamePicker {
            firstNameTextField.text = firstNames[row]
        } else {
            secondNameTextField.text = secondNames[row]
        }
    }

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

        return pickerView == firstNamePicker ? firstNames[row] : secondNames[row]
    }
}

关于ios - 如何多次使用 UIPickerView 和 TextField ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49676918/

相关文章:

ios - 如何更改 iOS 13 导航栏中的后退按钮图像?

ios - 重写枚举初始化?(rawValue : String) to not be optional

ios - __bridge_transfer 从 CFArrayRef 到 NSArray* - 元素也转移了吗?

Swift Viewcontroller.type 没有名为的成员

ios - 在 UIView 中拖动、捏合和缩放图像

ios - 如何在自定义 tableViewCell 中初始化 UiPickerView?

swiftui - 检查 pickerView SwiftUi 中的选择

swift - 如何在 swift 2.2 中更改 pickerview 中的文本/字体大小?

ios - 找不到 -lPayPalMPL 的库

ios - 我喜欢向 UIPopoverController 添加标题和按钮