Нажатие на TableViewCell для отображения UIPickerView - PullRequest
0 голосов
/ 19 июня 2020

У меня есть пользовательские TableViewCell и UIPickerView в качестве inputView для текстового представления ячейки:

class PickerTableViewCell: UITableViewCell {

    let picker = UIPickerView()

    let pickerOptions: [String] = []

    lazy var pickerTextField: UITextFieldWithNoCursor = {
       let pickerTextField = UITextFieldWithNoCursor()
       pickerTextField.inputView = picker
       ...
       return pickerTextField
    }()


    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)

        containerStackView.addArrangedSubview(pickerTextField)
    }
}

Проблема заключается в выборе средства выбора. Он работает только при нажатии на текстовое поле, но если я коснусь какой-либо другой части ячейки, он ничего не сделает. Есть ли способ показать pickerView, нажав на всю ячейку, а не только на ее текстовое представление?

1 Ответ

0 голосов
/ 19 июня 2020

Для этого вы можете добавить жест касания в ячейку

override func awakeFromNib() {
           super.awakeFromNib()

           let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tapEdit))
           addGestureRecognizer(tapGesture)


       }

       @objc func tapEdit() {

        pickerTextField.becomeFirstResponder()

       }
...