Клавиатура отображается при первом нажатии для UITextField.inputView = UIPickerView

Я не мог найти ничего уважения к Свифту по этому поводу.

Я настраиваю UIPickerView как inputView для UITextField,

Все работает нормально, но когда я нажимаю на этот конкретный UITextField в первый раз клавиатура показывает, а не UIPickerViewЕсли я нажму на нее еще раз, UIPickerView показано.

Кто-нибудь знает, что я делаю не так?

Посмотрите некоторые части моего кода.

@IBAction func textFieldEditingMot(sender: UITextField) {

    let motivoPicker: UIPickerView = UIPickerView()

    motivos = ["Pedido de demissão","Dispensa sem justa causa","Dispensa com justa causa", "Término do contrato de experiência"]

    motivoPicker.delegate = self
    motivoPicker.dataSource = self
    motivoTextField.inputView = motivoPicker

}

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
{
    return 1
}

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
{
    return motivos.count
}

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
    motivoTextField.text = motivos[row]
}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
{
    return motivos[row]
}

1 ответ

Решение

Убедитесь, что вы устанавливаете свой UITextFieldDelegate, и тогда я бы также переместил все это:

let motivoPicker: UIPickerView = UIPickerView()

motivos = ["Pedido de demissão","Dispensa sem justa causa","Dispensa com justa causa", "Término do contrato de experiência"]

motivoPicker.delegate = self
motivoPicker.dataSource = self
motivoTextField.inputView = motivoPicker

для просмотра DidLoad

Другие вопросы по тегам