如何在uitextfield中处理退格键 [英] how to handle backspace in uitextfield

查看:93
本文介绍了如何在uitextfield中处理退格键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有6个uitextfield,并且我进行了自动对焦.用户在一个文本字段中输入一个值后,他们将自动重定向到下一个文本字段.但是我不知道如何处理退格键.就像当用户在最后一个文本字段中并按退格键以删除值时一样.他们再次必须分别移至5,4,3,2,1个文本字段./p>

这是我的自动对焦代码:

  @IBAction函数编辑(_发件人:UITextField){如果发件人== TextFieldOne {如果sender.text?.characters.count == 1 {TextFieldTwo.becomeFirstResponder()}}否则,如果发件人== TextFieldTwo {如果sender.text?.characters.count == 1 {TextFieldThree.becomeFirstResponder()}}否则,如果发件人== TextFieldThree {如果sender.text?.characters.count == 1 {TextFieldFour.becomeFirstResponder()}}否则,如果发件人== TextFieldFour {如果sender.text?.characters.count == 1 {TextFieldFive.becomeFirstResponder()}}否则,如果发件人== TextFieldFive {如果sender.text?.characters.count == 1 {TextFieldSix.becomeFirstResponder()}}否则,如果发件人== TextFieldSix {如果sender.text?.characters.count == 1 {TextFieldSix.resignFirstResponder()}}} 

提前谢谢!

解决方案

首先,您不应该使用Backspace进入上一个tf,因为这在IOS中不是标准的.但是,这是您可以实现的方法:

在shouldchangecharacters方法中,您需要确定轻按的按钮是否为退格键,然后使用标签分别标识每个文本字段.因此,当您获得退格键时,可以通过减小当前文本字段中的标签值来获取前一个文本字段,并将前一个文本字段作为第一响应者.

所有文本字段都将是相同的,因此您无需使用昂贵的if-else条件即可实现.

I have 6 uitextfield.And i did the autofocus. once user enter one value in one textfield.They will automatically redirect to next textfield. But i dont know how to handle the backspace .Like when user in last textfield and press backspace to delete the value..again they have to move to 5,4,3,2,1 respective textfields.How to do that ??

Here my code for autofocus :

@IBAction func editing(_ sender: UITextField)
    {


        if sender == TextFieldOne {
            if sender.text?.characters.count == 1 {
                TextFieldTwo.becomeFirstResponder()
            }
        }

        else if sender == TextFieldTwo {
            if sender.text?.characters.count == 1 {
                TextFieldThree.becomeFirstResponder()
            }
        }

        else if sender == TextFieldThree {
            if sender.text?.characters.count == 1 {
                TextFieldFour.becomeFirstResponder()
            }
        }
        else if sender == TextFieldFour {
            if sender.text?.characters.count == 1 {
                TextFieldFive.becomeFirstResponder()
            }
        }
        else if sender == TextFieldFive {
            if sender.text?.characters.count == 1 {
                TextFieldSix.becomeFirstResponder()
            }
        }

        else if sender == TextFieldSix {
            if sender.text?.characters.count == 1 {
                TextFieldSix.resignFirstResponder()
            }
        }




    }

Thanks in advance !

解决方案

First of all you shouldn't go to previous tf on tap on backspace as it's not standard in IOS. However here is the way you can achieve it:

In shouldchangecharacters method you need to identify if the tapped button is backspace, and then you use tags to identify each of the textfield seprately. So when you get the backspace you can get the previous textfield by decreasing the tag value from the current textfield and make the previous one the first responder.

It will be same for all the textfields so you don't have to use expensive if-else conditions to achieve it.

这篇关于如何在uitextfield中处理退格键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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