IOS Swift3 UITextField 实现密码的显示与隐藏切换

        最近做项目遇到一个需要做密码的显示与隐藏功能,简单从功能上讲是比较简单的,但是,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

}

}

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

你可能感兴趣的:(IOS Swift3 UITextField 实现密码的显示与隐藏切换)