在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近做项目遇到一个需要做密码的显示与隐藏功能,简单从功能上讲是比较简单的,但是,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 } } 代码就贴在这里了,如果有什么问题欢迎交流! |
请发表评论