/ / UIPickerView виберіть перший рядок, при хованні - швидкий, uipickerview

UIPickerView виберіть перший рядок, при хованні - швидкий, uipickerview

Я зробив панель інструментів для 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
}

Але коли я натискаю кнопку "Готово" або "Скасувати", вибирач вибирає перший рядок і закриває. Я не хочу такої поведінки, я просто хочу приховати вибір і залишити вибране значення.

Отже, у мене є 2 питання:

  1. Чому UIPickerView поводитись так?
  2. Як запобігти?

Дякую за будь-яку допомогу!

Відповіді:

0 для відповіді № 1


Я виявив, що у вас є дві помилки. Один - друкарська дія. Це має бути дія: "сховатиPicker", немає дужок відповідно до ваших кодів. Другий - ваш pickerToolbar не повинен бути підзаглядом pickerView. Змініть його на self.view.addSubview (pickerToolbar) і ви побачите зміни.

Ура,