【问题标题】:How to reset the values inside the UIPickerView when the other textfield is selected?选择其他文本字段时如何重置 UIPickerView 内的值?
【发布时间】:2016-02-20 13:00:24
【问题描述】:

我在 UIPickerView 中遇到问题。当我选择 textField1 时,UIPickerView 是正确的,但是当我单击 textField2 时,pickerData1 中的值显示在 UIPickerView 中,而不是 pickerData2 的值。如果错误,请帮助我找到错误或纠正我的错误代码。谢谢

注意:didSelectRowtitleForRow 函数中的 bool 只是一个示例。谢谢

 class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {


    @IBOutlet var textField1: UITextField!

    let pickerData1 = ["11", "12", "13"]

    let pickerData2 = ["14", "15", "16"]



    override func viewDidLoad() {
        super.viewDidLoad()
           let picker: UIPickerView
        picker = UIPickerView(frame: CGRectMake(0, 200, view.frame.width, 300))
        picker.backgroundColor = .whiteColor()

        picker.showsSelectionIndicator = true
        picker.delegate = self
        picker.dataSource = self

        let toolBar = UIToolbar()
        toolBar.barStyle = UIBarStyle.Default
        toolBar.translucent = true
        toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
        toolBar.sizeToFit()

        let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "donePicker")
        let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
        let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "donePicker")

        toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
        toolBar.userInteractionEnabled = true

        textField1.inputView = picker
        textField1.inputAccessoryView = toolBar


       textField2.inputView = picker
       textField2.inputAccessoryView = toolBar
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return pickerData.count
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        if textfield1selected // just a sample bool
        {
         return pickerData1[row]
        }
        else   // sample bool also
         {
          return pickerData2[row]
         }
    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

       if textfield1selected // just a sample bool
        {
          textField1.text = pickerData1[row]
        }
        else   // sample bool also
         {
           textField2.text = pickerData2[row]
         }
    }

    func donePicker() {

        textField1.resignFirstResponder()
         textField2.resignFirstResponder()
    }




    }

【问题讨论】:

  • 如果我的回答对你有帮助,请接受....谢谢程序员是天才:)
  • 谢谢它真的有帮助嘿嘿“)

标签: ios swift swift2 xcode7


【解决方案1】:
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

       if textfield1selected // just a sample bool
        {
          textField1.text = pickerData1[row]

          picker.reloadAllComponents();

        }
        else   // sample bool also
         {
           textField2.text = pickerData2[row]
            picker.reloadAllComponents();
         }
    }

【讨论】:

猜你喜欢
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
  • 2020-05-12
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 2012-08-26
  • 1970-01-01
相关资源
最近更新 更多