I have been searching SO for two days now trying to find an answer to this. I may not even be asking the question correctly so forgive me if that is so.
I want my data picker to default to the [0]th item of the data source array for that textField. Currently, I can see no consistency as to how the selected array item is chosen when the pickerView is loaded. I have a blank ("") as the first item in the arrays with the thought that the user would see a blank as the default item in the pickerView with all other items following that.
How can I force the pickerView to show the "" in the array (the [0]th item in each array) as the default selected value when the pickerView loads and is shown to the user?
Here is the code for the pickerViews:
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return self.activeDataArray.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return self.activeDataArray[row] as! String
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if activeDataArray == personnelName {
enterPersonnelName.text = personnelName[row] as String
}
else if activeDataArray == drugID {
enterDrugID.text = drugID[row] as String
}
else if activeDataArray == packageNumber {
enterPackageNumber.text = packageNumber[row] as String
enterQty.text = quantity[0]
enterExpDate.text = expDate[0]
}
//put pickerView away
self.view.endEditing(true)
}
Edit: Code to invoke the pickerView
func textFieldDidBeginEditing(textField: UITextField) {
activeDataArray == [] //clear out the clicked field data array
if textField == enterPersonnelName {
activeDataArray = personnelName
} else
if textField == enterDrugID {
activeDataArray = drugID
} else
if textField == enterPackageNumber {
activeDataArray = packageNumber
} else
if textField == enterQty {
activeDataArray = quantity
} else
if textField == enterExpDate {
activeDataArray = expDate
}
dataPickerView.reloadAllComponents() //clear out components of the dataPickerView
dataPickerView.hidden = false
}
Selecting Rows in the View Picker
override func viewDidLoad() {
super.viewDidLoad()
pickerView.delegate = self
pickerView.selectRow(0, inComponent: 0, animated: false)
}