数据选择器为一个字段正确填充但不是另一个

Data picker populating correctly for one field but not the other

我有一个测试项目,我正在使用它来开发我的代码,然后再在我的实际项目中实现它。在测试中,我有两个字段,当点击它们时应该调出一个填充了该字段数组的 dataPicker。这适用于第一个字段 (enterSeason),但第二个字段 (enterSport) returns 仅适用于键盘。我已经遍历了调试器,变量是正确的,并且两个字段的工作方式相同。我错过了什么?谢谢。

import UIKit

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {

@IBOutlet var enterSeason: UITextField!

@IBOutlet var enterSport: UITextField!

var dataPickerView = UIPickerView()
var season = ["2013", "2014", "2015"] //multi-season
//var season = ["2015"] //single-season
var sport = ["Baeball", "Football", "Basketball", "Hockey"]
var activeDataArray = []

override func viewDidLoad() {
    super.viewDidLoad()

    enterSeason.inputView = dataPickerView
    dataPickerView.delegate = self
    dataPickerView.dataSource = self

}

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

func textFieldDidBeginEditing(textField: UITextField) {
    if textField == enterSeason {
        activeDataArray = season
    } else
        if textField == enterSport {
            activeDataArray = sport
        }
}

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return activeDataArray.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
    return activeDataArray[row] as! String
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    if activeDataArray == season {
        enterSeason.text = season[row] as! String
    }
    else if activeDataArray == sport {
        enterSport.text = sport[row] as! String
    }

}

}

这是我的第一个项目,我从 S.O 中学到了很多东西。感谢您所有耐心的回复。

包括

enterSport.inputView = dataPickerView

设置正确的 firstResponder。

设置dataPickerView为enterSport的inputview

enterSport.inputView = dataPickerView;