Заполните разные UITextField с той же персонализированной клавиатуры - PullRequest
0 голосов
/ 26 марта 2019

У меня есть вид, где я другой UITextfield.Для записи этого TF я использую персонализированный UIPickerview в качестве клавиатуры.

Моя проблема в том, что, когда я выбираю Первый TF, клавиатура открывается, и я могу выбрать свое значение.Значение перейти к этому выбранному TF.Теперь, когда я выбираю второй TF, появляется клавиатура, но значение переходит к первому TF ...

Я не знаю, почему это не работает ...

В моем ViewDidLoadT есть:

flightTimeSe.inputAccessoryView = Ttoolbar
flightTimeSe.delegate = self
flightTimeMe.inputView = DurationPicker
flightTimeMe.inputAccessoryView = Ttoolbar
flightTimeMe.delegate = self
flightTimeMp.inputView = DurationPicker

Это присваивает UIPickerview TF, а также моей панели инструментов.

My UIPickerview определяется следующим образом:

lazy var DurationPicker: UIPickerView = {
        let DurationPicker = UIPickerView()
        DurationPicker.delegate = self
        DurationPicker.dataSource = self

        var flightTime: String = ""
        var row0: String = "0"
        var row1: String = "0"
        var row2: String = "0"
        var row4: String = "0"
        var row5: String = "0"

            row0 = myPickerRow1[DurationPicker.selectedRow(inComponent: 0)]

            row1 = myPickerRow2[DurationPicker.selectedRow(inComponent: 1)]

            row2 = myPickerRow3[DurationPicker.selectedRow(inComponent: 2)]

            row4 = myPickerRow5[DurationPicker.selectedRow(inComponent: 4)]

            row5 = myPickerRow6[DurationPicker.selectedRow(inComponent: 5)]

        //print("\(row0)\(row1)\(row2):\(row4)\(row5)")

        if row0 != "0"{
            flightTime = "\(row0)\(row1)\(row2):\(row4)\(row5)"
        }else if row0 == "0" && row1 != "0"  {
            flightTime = "\(row1)\(row2):\(row4)\(row5)"
        }else if row1 == "0" && row2 != "0"  {
            flightTime = "\(row2):\(row4)\(row5)"
        }else if row2 == "0" && row4 != "0"  {
            flightTime = "\(row2):\(row4)\(row5)"
        }else if row2 == "0" && row4 == "0" && row5 != "0" {
            flightTime = "\(row2):\(row4)\(row5)"
        }
        print(flightTime)
        return DurationPicker
    }()

Я не знаю, как теперь поступить с моим делегатом, чтобы заполнить правильный TF ...

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 26 марта 2019

Лучшим подходом является создание функции, которая принимает текстовое поле и тег, создает объект UIPickerView и устанавливает его как входное представление текстового поля, при создании вы можете назначить тег для UIPickerView, в делегате вы можете прочитать тег средства выбора даты и соответствующим образом обновить текстовое поле.

...