Swift - masquer pickerView après la valeur sélectionnée

J'ai trouvé les mêmes questions à ce sujet et leurs réponses ont été utiles, mais je suis bloqué à une dernière chose. Je suis en train d'essayer d'obtenir un pickerView apparaissent lorsque je tape sur un champ, puis, quand les données sont sélectionnées, je veux le pickerView à cacher. Je suis en mesure d'obtenir les données à partir de la pickerView à cacher, cependant, il ya encore un rectangle gris qui était derrière la pickerView qui reste. Si je tape sur l'écran, pas sur un champ ou la pickerView, le rectangle gris se cache, puis réapparaît lorsque je tape sur le champ suivant, seulement de rester après les nouvelles données est choisi, jusqu'à ce que je tape sur certains écran vide.

Je joins mon code ci-dessous et vous verrez que j'ai essayé plusieurs options. Ce ne sont pas tout ce que j'ai essayé, mais après plusieurs tentatives, j'ai juste un commentaire au lieu de supprimer, donc je pouvais me souvenir de ce que j'avais fait. Je suis très nouveau pour le codage, donc j'apprécie ce site comme une ressource et je vous remercie pour votre aide.

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 sport = ["Baseball", "Football", "Basketball", "Hockey"]
var activeDataArray = []
override func viewDidLoad() {
super.viewDidLoad()
enterSeason.inputView = dataPickerView
enterSport.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) {
activeDataArray = [] //clear out the clicked field data array
        if textField == enterSeason {
activeDataArray = season
} else
if textField == enterSport {
activeDataArray = sport
}
dataPickerView.reloadAllComponents()
dataPickerView.hidden = false
}
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
}
//trying to hide the dataPicker
        dataPickerView.hidden = true
//dataPickerView.reloadAllComponents()
        //self.dataPickerView.resignFirstResponder()
        //self.dataPickerView.frameForAlignmentRect(CGRectMake(0, 900, 375, 219))

}
//function to hide data in
    func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
//funtion to hide keyboard when screen is tapped
    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
self.view.endEditing(true)
}
}

OriginalL'auteur Greg | 2015-05-28