iOS 6 Secure密碼UITextField造成非密碼UITextField退格清空Bug – iPhone手機開發技術文章 iPhone軟體開發教學課程

[cpp]
今天客戶報瞭一個應用在iOS6上的bug,比如有一個secureTextEntry為Yes的UITextField和 
一個普通的UITextField,重現步驟: 
1. 點擊普通的UITextField輸入類容, 
2. 點擊密碼UITextField輸入內容, 
3. 點擊普通的UITextField重新獲得焦點, 
4. 接著點擊鍵盤上的退格鍵, 
結果:這時會發現普通的UITextField被清空瞭。 
 
經過研究查找發現這個bug隻在iOS6上有之前的沒有,比較詭異。 
然後拿iOS6的ipad做瞭實驗,發現settings裡的iCloud裡的apple ID和密碼輸入同樣有這個 
bug,個人覺得這應該是iOS6的一個系統小bug,也許和iOS6 secureTextEntry為Yes的 
UITextField的這個新特性有關: 
如果點擊一個沒有獲得焦點有內容的secureTextEntry為Yes的UITextField,然後點擊鍵盤上 
的退格鍵,這樣會清空這個UITextField。 
 
這個新特性本來是為瞭提高用戶體驗,但卻造成瞭一個fix起來比較糾結的bug。 
為瞭修復此問題,隻能去除UITextField的secureTextEntry為Yes屬性,但UITextField又 
要有掩碼的效果,所以隻能寫一個UITextField子類,添加一個realValue屬性來記錄真實 
的值,重寫setText/text方法來實現替換,但是密碼字段的掩碼效果是有幾秒延時的 
(輸入的類容大概一兩秒後變成圓點)需要自己實現,所以修復起來比較糾結。 
 
目前還沒有找到簡單好的方法來fix這個問題,希望能看到好的解決方法或者我思路錯瞭 
這其實不是一個bug。記錄一下,有待研究。 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。