2017-09-14 33 views
2

我的代碼bellow是使用picker視圖來顯示a和b的uitextfiled。我想要做的就是讓所有使用outlet集合的文本字段具有相同的選擇器視圖。 Textfield是單個textField,MutlipleTextifeld是我想要使用的插座集合。我只想用mutlipleTextifield替換textField。在outlet集合文本框中使用pickerView

 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) 
}} 

enter image description here

+0

帖子截圖。爲什麼你使用cutler集合? – Vinodh

回答

1

首先設置pickerViewdataSourceDelegateselfViewController類。正如我看到你沒有。所以,你會viewDidLoad()有些這樣的:

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) 
} 

輸出故事板的

enter image description here

+0

這就是它!在獎勵獎勵之前,我必須等待19個小時。 –

2

使用下面的代碼在您的viewDidLoad方法。而已。!

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

以一個全局變量在你的控制器名textFiledTag

每當你點擊一個文本框下面的方法將被調用 -

textFieldDidBeginEditing

int該方法寫下面一行

textFieldTag = textField.tag現在

您可以通過獲取全球標籤值的標籤設置選擇器視圖的文本。

希望這有助於..!

+0

當選擇器中的值被選中時,如何將文本設置爲文本字段 – Vinodh

+0

您可以對文本字段使用標籤。 –

+0

你可以發佈的代碼不清楚 – Vinodh

相關問題