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:
- Perché
UIPickerView
comportarsi in questo modo? - 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,