zoukankan      html  css  js  c++  java
  • IOS swift实现密码的显示与隐藏切换

          最近做项目遇到一个需要做密码的显示与隐藏功能,简单从功能上讲是比较简单的,但是,ios有个恶心的BUG,就是在切换显示密码后再隐藏密码时输入就被清空了,这个非常不友好,为了解决这个问题,我在网上找了相关文章,得到了一些启发,解决了这个问题,在这里分享出来供给大家参考与学习!

    代码如下:

     importUIKit

    class MyTextField:UITextField,UITextFieldDelegate{

    private var maxLength=11

    overrideinit(frame:CGRect) {

    super.init(frame: frame)

    self.delegate=self

    }

    requiredinit?(coder aDecoder:NSCoder) {

    super.init(coder: aDecoder)

    self.delegate=self

    }

     //监听输入值的变化

    functextField(_textField:UITextField, shouldChangeCharactersIn range:NSRange, replacementString string:String) ->Bool{

    letnewText = NSString(string:textField.text!).replacingCharacters(in: range, with: string)

    //控制输入长度

    if(newText.characters.count)>maxLength{

    letidx =self.text?.index((text?.startIndex)!, offsetBy: maxLength)

    self.text=self.text?.substring(to: idx!)

    return false

    }

    //处理明文密文切换时输入不被清空(关键代码)

    if textField==self&&self.isSecureTextEntry{

    self.text=newText

    return false

    }

    return true

    }

    //设置可输入的最大长度

    func setMaxLength(maxLength:Int){

    self.maxLength=maxLength

    }

    }

    代码就贴在这里了,如果有什么问题欢迎交流!

  • 相关阅读:
    Hadoop 源码编译
    Hadoop之HDFS介绍
    CentOS 7 导入epel库
    CentOS7安装 VirtualBox虚拟机
    ios开发在导入环信SDK后运行出现 Reason: image not found 的解决方案
    centos安装PHP
    centOS安装apache服务器
    centOS最小化安装后网络连接问题
    django orm
    yield, async
  • 原文地址:https://www.cnblogs.com/zzjbk/p/7573601.html
Copyright © 2011-2022 走看看