iOS明文密文切換時(shí)問題

1.項(xiàng)目中經(jīng)常遇到密碼需要明文,密文切換的樣式,如下圖:

login.png

2.切換過程中,會(huì)在10以下的系統(tǒng)會(huì)出現(xiàn)幾個(gè)問題,1.出現(xiàn)空格,光標(biāo)位置錯(cuò)亂,2.字體變化,3.密文時(shí)輸入文字清空,下面分別列舉出解決辦法:

3.1 第一種問題解決辦法,先保存文本,再清空輸入,再賦值,就解決了空格問題


- (void)eyesBtnClick:(UIButton *)btn
{
    self.textField.secureTextEntry = btn.selected;
    btn.selected = !btn.selected;
    
    NSString *oriText = self.textField.text;
    self.textField.text = @"";
    self.textField.text = oriText;

}

3.2 字體變化問題,重新設(shè)置一下字體,保持和現(xiàn)在設(shè)置的一樣


- (void)eyesBtnClick:(UIButton *)btn
{
    self.textField.secureTextEntry = btn.selected;
    btn.selected = !btn.selected;
    
    NSString *oriText = self.textField.text;
    self.textField.text = @"";
    self.textField.text = oriText;
    
    self.textField.font = [UIFont fontWithName:@"HelveticaNeue" size:16];
}

3.3 密文輸入清空問題,在代理里面,加多一個(gè)判斷能避免密文清空的問題,如下:


- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    //明文切換密文后避免被清空
    NSString *toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    if (textField == self.textField && textField.isSecureTextEntry) {
        textField.text = toBeString;
        return NO;
    }
    return YES;
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,540評(píng)論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,255評(píng)論 4 61
  • 向崇陵噪暮鴉,寒凝大地發(fā)春華。——魯迅 亭臺(tái)埋于荒草 殿堂化為廢墟 迷宮何在?皇宇難覓! 只畦稻田橫豎 一片冬草迷...
    生活戀情閱讀 227評(píng)論 1 1
  • 今天學(xué)習(xí)了C#程序設(shè)計(jì) 1.C#(C Sharp)是微軟在C、C++、Java語言的基礎(chǔ)上重新構(gòu)造的語言 C#是一...
    孫世龍閱讀 130評(píng)論 0 0
  • 那是那樣的慢 可我并不在乎 輕輕地對(duì)著烏龜說 咱們作伴吧 好神奇 我看見了以前從沒有看見過的東西 我知道他累了 我...
    言溪早歷史紀(jì)錄片愛好者閱讀 155評(píng)論 1 0