欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS開(kāi)發(fā)中蘋果輸入手機(jī)號(hào)變用戶的名字

 更新時(shí)間:2017年05月24日 13:59:07   作者:豆丶漿油條  
今天我們的用戶輸入手機(jī)號(hào)之后變成了用戶的名字,沒(méi)辦法獲取驗(yàn)證碼,因?yàn)槭謾C(jī)格式不對(duì)。下面通過(guò)本文給大家分享開(kāi)發(fā)中蘋果輸入手機(jī)號(hào)變用戶的名字,需要的朋友可以參考下

今天我們的用戶輸入手機(jī)號(hào)之后變成了用戶的名字,沒(méi)辦法獲取驗(yàn)證碼,因?yàn)槭謾C(jī)格式不對(duì)。我還是頭一次遇到這樣的事情。

1.文本替換

遇到這種事情肯定去百度啊,發(fā)現(xiàn)還真有人和我遇到相同的情況,原來(lái)這個(gè)用戶在設(shè)置-》通用-》鍵盤-》文本替換把自己的手機(jī)號(hào)設(shè)置自己的名字了,這樣只要在UITextField中輸入自己的手機(jī)號(hào),輸入完就會(huì)變成自己的名字,出現(xiàn)上圖的情況。

其實(shí)這個(gè)功能還是滿好玩的,不過(guò)用戶要是把自己的手機(jī)號(hào)設(shè)置文本替換了,那么在APP里注冊(cè)就會(huì)出現(xiàn)問(wèn)題了。當(dāng)時(shí)我就想是不是微信也這樣啊,


看來(lái)微信已經(jīng)解決了這個(gè)問(wèn)題,他手機(jī)號(hào)中間加了兩個(gè)空格,而文本替換是不允許加空格的,所以可以正常完成登錄。這里不得不為微信的工程師們點(diǎn)贊?。〔贿^(guò)淘寶更厲害,沒(méi)有加空格,也沒(méi)有進(jìn)行文本替換,真是厲害啊。我又去看了其他App,基本上都是用空格來(lái)防止文本替換的,但是也有一些注冊(cè)登錄不了的,有興趣的可以去嘗試。

2.用空格防止文本替換

#pragma mark - UITextFieldDelegate
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
  if (textField == _txtUserName) {
    // 12312345678-> 123 1234 5678
    if (range.location == 3 || range.location == 8) {
      
      textField.text = [textField.text stringByAppendingString:@" "];
    }
    // 手機(jī)號(hào)最多輸13位 包含兩個(gè)空格,防止文本替換
    if(range.location >= 13){
      return NO;
    }
  }
  return YES;
}

這樣就成功的防止文本替換了,因?yàn)槲谋咎鎿Q不能包含空格。但是我又發(fā)現(xiàn)刪除不了了,就是當(dāng)刪除到空格的時(shí)候就不能繼續(xù)刪除了。難道是數(shù)字鍵盤里不能刪除空格???后來(lái)我分析代碼發(fā)現(xiàn)當(dāng)我刪除到空格的時(shí)候,就會(huì)自動(dòng)幫我在后面再加上一個(gè)空格,這樣我就永遠(yuǎn)把空格刪除不了了。所以我要區(qū)分只有在輸入的時(shí)候添加空格,刪除到123 1234 5678的5時(shí),自動(dòng)把5前面的空格去掉。

3.區(qū)分輸入和刪除

當(dāng)UITextField刪除的時(shí)候執(zhí)行- (void)deleteBackward;方法,這個(gè)方法在UIKeyInput協(xié)議中。那這就好辦了,自定義UITextField的,重寫- (void)deleteBackward;,這個(gè)方法一執(zhí)行,就發(fā)通知,或者走代理,都可以。后來(lái)我發(fā)現(xiàn)這有點(diǎn)麻煩,我還要自定義,發(fā)通知/代理,太麻煩了。所以我就想通過(guò)監(jiān)測(cè)UITextField的location來(lái)區(qū)分輸入或刪除。

#pragma mark - UITextFieldDelegate
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
  if (textField == _txtUserName) {
    // 刪除
    if (_lastLocation > range.location) {
      if (range.location == 9 || range.location == 4) {
        // 刪除到空格后一位的時(shí)候,自動(dòng)把空格也去掉
        textField.text = [textField.text substringToIndex:range.location];
      }
      _lastLocation = range.location - 1;
      return YES;
    }else {
      // 輸入
      if (range.location == 3 || range.location == 8) {
        textField.text = [textField.text stringByAppendingString:@" "];
      }
    }
    _lastLocation = range.location;
    // 手機(jī)號(hào)最多輸13位 包含兩個(gè)空格,防止文本替換
    if(range.location >= 13){
      return NO;
    }
  }
  return YES;
}

其實(shí)用戶一多,對(duì)開(kāi)發(fā)者來(lái)說(shuō)成長(zhǎng)會(huì)非???,因?yàn)槭裁辞闆r都會(huì)遇到,我們就在解決問(wèn)題中成長(zhǎng)。

以上所述是小編給大家介紹的iOS開(kāi)發(fā)中蘋果輸入手機(jī)號(hào)變用戶的名字,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • iOS如何為導(dǎo)航欄添加播放動(dòng)畫

    iOS如何為導(dǎo)航欄添加播放動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了iOS如何為導(dǎo)航欄添加播放動(dòng)畫的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Objective-C中block循環(huán)引用問(wèn)題詳解

    Objective-C中block循環(huán)引用問(wèn)題詳解

    這篇文章主要給大家介紹了關(guān)于Objective-C中block循環(huán)引用問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Objective-C具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • iOS為UIView設(shè)置陰影效果

    iOS為UIView設(shè)置陰影效果

    現(xiàn)在很多的開(kāi)發(fā)者們都會(huì)在開(kāi)發(fā)的時(shí)候加陰影效果,所以這篇文章跟大家分享下iOS為UIView設(shè)置陰影效果的實(shí)現(xiàn)過(guò)程,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-09-09
  • iOS給密碼進(jìn)行加密的方法

    iOS給密碼進(jìn)行加密的方法

    這篇文章主要介紹了iOS給密碼進(jìn)行加密的方法,需要的朋友可以參考下
    2017-06-06
  • iOS實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器

    iOS實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • IOS 基礎(chǔ)之設(shè)置 tableview 的分割線

    IOS 基礎(chǔ)之設(shè)置 tableview 的分割線

    這篇文章主要介紹了IOS 基礎(chǔ)之設(shè)置 tableview 的分割線的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • iOS 獲得現(xiàn)在的時(shí)間代碼

    iOS 獲得現(xiàn)在的時(shí)間代碼

    本文通過(guò)實(shí)例代碼給大家介紹了iOS 獲得現(xiàn)在的時(shí)間的方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-06-06
  • IOS開(kāi)發(fā)用戶登錄注冊(cè)模塊所遇到的問(wèn)題

    IOS開(kāi)發(fā)用戶登錄注冊(cè)模塊所遇到的問(wèn)題

    最近和另外一位同事負(fù)責(zé)公司登錄和用戶中心模塊的開(kāi)發(fā)工作。通過(guò)本文給大家分享IOS開(kāi)發(fā)用戶登錄注冊(cè)模塊所遇到的問(wèn)題,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • 解決Xcode 8構(gòu)建版本iTunes Connect獲取不到應(yīng)用程序狀態(tài)的辦法

    解決Xcode 8構(gòu)建版本iTunes Connect獲取不到應(yīng)用程序狀態(tài)的辦法

    這篇文章主要介紹了關(guān)于解決Xcode 8構(gòu)建版本iTunes Connect獲取不到應(yīng)用程序狀態(tài)的辦法,需要的朋友可以參考下
    2017-03-03
  • 詳細(xì)談?wù)刬OS字符串翻轉(zhuǎn)

    詳細(xì)談?wù)刬OS字符串翻轉(zhuǎn)

    字符串翻轉(zhuǎn)是我們?cè)趯W(xué)習(xí)算法的時(shí)候經(jīng)常會(huì)遇到的一個(gè)基礎(chǔ)算題,下面這篇文章主要給大家詳解介紹了關(guān)于iOS字符串翻轉(zhuǎn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧
    2018-07-07

最新評(píng)論