iOS 开发每天分享优质文章

iOS12 自动填充验证码

2018-10-29  本文已影响882人  藤原拓鸡

iOS12出来也有一段时间了,上线项目遇到一个问题,就是自动填充验证码的时候,对应的焦点textField不正确。

我们的输入验证码界面

这是我们的界面。

借用网图

借用一个网图。。当点击红圈按钮的时候,所有验证码2868全部跑到了第一个textfield里面。


当你有四个textfield作为接受验证码的时候,其实很好解决。

首先新建一个textfield,这里我用的是自己封装的textfield

@property(nonatomic,strong) XZTextField *quickTF;

然后在初始化方法里面声明。

if (@available(iOS 12.0, *)) {
        self.quickTF = [[XZTextField alloc]init:15
                                           mode:UITextFieldViewModeNever
                                          place:nil
                                          frame:CGRectZero];
        self.quickTF.textContentType = UITextContentTypeOneTimeCode;
        [self.quickTF addTarget:self action:@selector(quickInput) forControlEvents:UIControlEventEditingChanged];
    }

对这个textfield进行变化值的监听,并且设置它的textContentType属性为UITextContentTypeOneTimeCode。

- (void)quickInput{
    NSString *code = self.quickTF.text;
    if (code.length != 4) {
        return;
    }
    for (NSInteger idx = 0; idx < self.tfs.count; idx ++) {
        XZTextField *tf = (XZTextField *)self.tfs[idx];
        tf.text = [code substringWithRange:NSMakeRange(idx,1)];
    }
}

然后对收到的值进行判断处理。我们的验证码为4位数的,所以判断了它的长度。然后用for循环遍历斤每一个验证码的textfield里面。


这样就完美实现了该功能!

上一篇下一篇

猜你喜欢

热点阅读