最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

1.文本替換

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

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


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

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ī)號最多輸13位 包含兩個(gè)空格,防止文本替換
    if(range.location >= 13){
      return NO;
    }
  }
  return YES;
}

這樣就成功的防止文本替換了,因?yàn)槲谋咎鎿Q不能包含空格。但是我又發(fā)現(xiàn)刪除不了了,就是當(dāng)刪除到空格的時(shí)候就不能繼續(xù)刪除了。難道是數(shù)字鍵盤里不能刪除空格???后來我分析代碼發(fā)現(xiàn)當(dāng)我刪除到空格的時(shí)候,就會自動(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ā)通知,或者走代理,都可以。后來我發(fā)現(xiàn)這有點(diǎn)麻煩,我還要自定義,發(fā)通知/代理,太麻煩了。所以我就想通過監(jiān)測UITextField的location來區(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ī)號最多輸13位 包含兩個(gè)空格,防止文本替換
    if(range.location >= 13){
      return NO;
    }
  }
  return YES;
}

其實(shí)用戶一多,對開發(fā)者來說成長會非???,因?yàn)槭裁辞闆r都會遇到,我們就在解決問題中成長。

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

相關(guān)文章

最新評論

贵港市| 诸暨市| 六盘水市| 房山区| 明水县| 内乡县| 句容市| 镇坪县| 平乡县| 乌海市| 清新县| 五峰| 平泉县| 遂昌县| 安泽县| 开化县| 宁德市| 临邑县| 松滋市| 阆中市| 邵东县| 瓦房店市| 汶上县| 百色市| 大连市| 延安市| 沁阳市| 乐陵市| 高邑县| 精河县| 渭南市| 彭州市| 杨浦区| 巫溪县| 新平| 凤庆县| 塔河县| 大新县| 丰县| 县级市| 无棣县|