我一直在尋找兩天,現在試圖找到答案。我甚至可能沒有正確地問這個問題,所以原諒我,如果是這樣的話。如何強制PickerView默認爲數組項[0]
我希望我的數據選取器默認爲該textField的數據源數組的第[0]項。目前,我看不到如何加載pickerView時選擇數組項目的一致性。我有一個空白(「」)作爲數組中的第一個項目,認爲用戶會看到一個空白,作爲pickerView中的默認項目,其後所有其他項目。
當pickerView加載並顯示給用戶時,如何強制pickerView在數組中顯示「」(每個數組中的[0] th項)作爲默認選定值?
下面是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)
}
編輯:代碼調用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
}
謝謝。視圖中有多個textField,因此您給出的代碼適用於第一個字段,但是在pickerView從數據數組中選擇一個不同的(不一致的)項之後,我會點擊每個字段。有沒有其他地方可以放置命令,以便每次調用pickerView時執行?我真的不在乎是否必須多次添加它。我不會選擇最簡化的代碼,只需按照他們需要的方式工作即可。 – Greg
@Greg你需要發佈你如何調用選擇器視圖 –
我通過添加該代碼來編輯原始問題。謝謝你的幫助。 – Greg