如何强制PickerView默认为数组项[0] [英] How to Force PickerView to default to array item [0]

查看:145
本文介绍了如何强制PickerView默认为数组项[0]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在寻找SO两天试图找到一个答案。我甚至可能不会问这个问题正确以便原谅我,如果是这样的话。

我想我的数据采集器默认为数据源阵列该文本框的[0]个项目。目前,我看不到任何一致性,以加载pickerView时如何选择的选择数组项。我有一个空白()作为与思想的数组中的第一项,用户将看到一个空白与下面的所有其他项目的pickerView默认项。

如何可以强制pickerView以显示,阵列中的(在[0]个各阵列项),为当pickerView载荷和示出给用户的默认选择值α

下面是code为pickerViews:

  FUNC numberOfComponentsInPickerView(pickerView:UIPickerView) -  GT; INT {
    返回1
}FUNC pickerView(pickerView:UIPickerView,numberOfRowsInComponent成分为:int) - GT; INT {
    返回self.activeDataArray.count
}FUNC pickerView(pickerView:UIPickerView,titleForRow行:智力,forComponent成分为:int) - GT;串! {
    返回self.activeDataArray [行]作为!串
}FUNC pickerView(pickerView:UIPickerView,didSelectRow行:智力,inComponent成分:智力){
    如果activeDataArray == {personnelName
        enterPersonnelName.text = personnelName [行]为String
    }
    否则,如果activeDataArray == {drugID
        enterDrugID.text = drugID [行]为String
    }
    否则,如果activeDataArray == {packageNumber
        enterPackageNumber.text = packageNumber [行]为String
        enterQty.text数量= [0]
        enterExpDate.text = EXPDATE [0]
    }
    //把pickerView远
    self.view.endEditing(真)
}

编辑:code调用pickerView

  FUNC textFieldDidBeginEditing(文本框:的UITextField){
    activeDataArray == [] //清除出现场点击数据数组
    如果文本框== {enterPersonnelName
        activeDataArray = personnelName
    }其他
        如果文本框== {enterDrugID
            activeDataArray = drugID
    }其他
        如果文本框== {enterPackageNumber
            activeDataArray = packageNumber
    }其他
        如果文本框== {enterQty
            activeDataArray =数量
    }其他
        如果文本框== {enterExpDate
            activeDataArray = EXPDATE
    }
    dataPickerView.reloadAllComponents()//将dataPickerView明确了组件
    dataPickerView.hidden = FALSE
}


解决方案

<一个href=\"https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPickerView_Class/#//apple_ref/occ/instm/UIPickerView/selectRow:inComponent:animated:\"相对=nofollow>在View选择器选择行

 覆盖FUNC viewDidLoad中(){
    super.viewDidLoad()
    pickerView.delegate =自
    pickerView.selectRow(0,inComponent:0,动画:FALSE)
}

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

这篇关于如何强制PickerView默认为数组项[0]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆