[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。記錄一下,有待研究。