/ / UIPickerView seleziona la prima riga, quando ti nascondi - swift, uipickerview

UIPickerView seleziona la prima riga, quando ti nascondi - swift, uipickerview

Ho creato una barra degli strumenti per UIPickerView:

override func viewDidLoad() {
pickerToolbar.barStyle = UIBarStyle.Default
pickerToolbar.translucent = true
pickerToolbar.tintColor = UIColor(red: 0.0, green: 112/255, blue: 186/255, alpha: 1.0)
pickerToolbar.sizeToFit()

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

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

typePicker.addSubview(pickerToolbar)
}

func hidePicker() {
typePicker.hidden = true
}

Ma quando tocchi il pulsante "Fatto" o "Annulla", il selettore seleziona la prima riga e chiude. Non voglio un comportamento del genere, voglio solo nascondere il selettore e lasciare il valore selezionato.

Quindi, ho 2 domande:

  1. Perché UIPickerView comportarsi in questo modo?
  2. Come prevenirlo?

Grazie per qualsiasi aiuto!

risposte:

0 per risposta № 1


Ho scoperto che hai due errori. Uno è un refuso per azione. Deve essere azione: "hidePicker", nessuna parentesi in base ai tuoi codici. Il secondo è il tuo pickerToolbar non dovrebbe essere una sottoview di pickerView. Cambialo a self.view.addSubview (pickerToolbar) e vedrai il cambiamento.

Saluti,