用相同的个性化键盘填充不同的UITextField [英] Fill different UITextField with the same personalised keyboard

查看:78
本文介绍了用相同的个性化键盘填充不同的UITextField的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在一个视图中,我有一个 UITextfield 。要过滤此TF,我使用个性化的 UIPickerview 作为键盘。

I've got a view where I've different UITextfield. To fil this TF I use a personalised UIPickerview as keyboard.

我的问题是,当我选择First TF时,键盘打开了,我可以选择我的值。该值转到该选定的TF。现在,当我选择第二个TF时,键盘会出现,但值会移到第一个TF ...

My problem is, when I select the First TF the keyboard open and I can select my value. The value go to this selected TF. Now when I select the second TF the keyboard appears but the value goes to the first TF ...

我不知道为什么这不起作用...

I don't know why this not works ...

在我的 ViewDidLoad 中:

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

这将分配 UIPickerview

This assign the UIPickerviewto the TF and Also my toolbar.

我的 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 ...

I don't now how to deal with my delegate to fill the right TF...

感谢您的帮助!

推荐答案

更好的方法是创建一个使用文本字段和标签的函数,创建UIPickerView对象并设置为文本字段的输入视图,在创建时可以将标签分配给UIPickerView,在委托中您可以读取日期选择器的标签并相应地更新文本字段。

Better approach is create a function which takes textfield and tag, creates UIPickerView object and set as input view of textfield, while creating you can assign tag to UIPickerView, in delegate you can read tag of date picker and update textfield accordingly.

这篇关于用相同的个性化键盘填充不同的UITextField的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆