? ? ? ? 最近做項目遇到一個需要做密碼的顯示與隱藏功能,簡單從功能上講是比較簡單的陕截,但是迹恐,ios有個惡心的BUG踪少,就是在切換顯示密碼后再隱藏密碼時輸入就被清空了塘安,這個非常不友好,為了解決這個問題援奢,我在網(wǎng)上找了相關(guān)文章兼犯,得到了一些啟發(fā),解決了這個問題集漾,在這里分享出來供給大家參考與學(xué)習切黔!
代碼如下:
?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
}
?//監(jiān)聽輸入值的變化
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
}
//處理明文密文切換時輸入不被清空(關(guān)鍵代碼)
if textField==self&&self.isSecureTextEntry{
self.text=newText
return false
}
return true
}
//設(shè)置可輸入的最大長度
func setMaxLength(maxLength:Int){
self.maxLength=maxLength
}
}
代碼就貼在這里了,如果有什么問題歡迎交流具篇!