2

下面的代码是一个 uitextfiled,它使用选择器视图来显示 a 和 b。我想要做的就是使用插座集合为所有文本字段显示相同的选择器视图。Textfield 是单个 textField ,而 mutlipleTextifeld 是我想要使用的出口集合。我只想用多个Textifield 替换textField。

       import UIKit

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
let picker = UIPickerView()
let country = ["a","b"]

@IBOutlet var mutlipleTextifeld: [UITextField]!

override func viewDidLoad() {
    super.viewDidLoad()

    for textFieldObject in mutlipleTextifeld
    {
        textFieldObject.inputView = picker
    }}

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

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

public func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
   mutlipleTextifeld.text = country[row]

    self.view.endEditing(false)
}}

在此处输入图像描述

4

2 回答 2

2

在 viewDidLoad 方法中使用以下代码。而已。!

let count : int = 0
for textField in mutlipleTextifeld {
     textField.inputView = picker
     textField.tag = count
     count +=1
}

在您的控制器中使用名称的全局变量textFiledTag

每当您点击文本字段时,都会调用以下方法 -

textFieldDidBeginEditing

int这个方法写下面一行

textFieldTag = textField.tag

现在您可以通过获取具有全局标签值的标签来设置选择器视图的文本。

希望这可以帮助..!

于 2017-09-15T07:11:39.513 回答
1

首先将dataSourceand设置为Delegateie类。我看你没有。所以你会有点像这样:pickerViewselfViewControllerviewDidLoad()

override func viewDidLoad() {
    super.viewDidLoad()
    picker.delegate = self
    picker.dataSource = self
    print (textFields.count)
    for textFieldObject in textFields
    {
        textFieldObject.inputView = picker
    }
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) delegate会是这样的:

public func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    for textField in textFields {
        if textField.isEditing {
            textField.text = country[row]
        }
    }
    self.view.endEditing(false)
}

输出

在此处输入图像描述

于 2017-09-20T18:15:34.087 回答