国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS開發中蘋果輸入手機號變用戶的名字

2019-10-21 18:46:24
字體:
來源:轉載
供稿:網友

今天我們的用戶輸入手機號之后變成了用戶的名字,沒辦法獲取驗證碼,因為手機格式不對。我還是頭一次遇到這樣的事情。

ios,輸入手機號變用戶名字

1.文本替換

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

ios,輸入手機號變用戶名字

其實這個功能還是滿好玩的,不過用戶要是把自己的手機號設置文本替換了,那么在APP里注冊就會出現問題了。當時我就想是不是微信也這樣啊,

ios,輸入手機號變用戶名字

看來微信已經解決了這個問題,他手機號中間加了兩個空格,而文本替換是不允許加空格的,所以可以正常完成登錄。這里不得不為微信的工程師們點贊啊!不過淘寶更厲害,沒有加空格,也沒有進行文本替換,真是厲害啊。我又去看了其他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:@" "];    }    // 手機號最多輸13位 包含兩個空格,防止文本替換    if(range.location >= 13){      return NO;    }  }  return YES;}

這樣就成功的防止文本替換了,因為文本替換不能包含空格。但是我又發現刪除不了了,就是當刪除到空格的時候就不能繼續刪除了。難道是數字鍵盤里不能刪除空格???后來我分析代碼發現當我刪除到空格的時候,就會自動幫我在后面再加上一個空格,這樣我就永遠把空格刪除不了了。所以我要區分只有在輸入的時候添加空格,刪除到123 1234 5678的5時,自動把5前面的空格去掉。

3.區分輸入和刪除

當UITextField刪除的時候執行- (void)deleteBackward;方法,這個方法在UIKeyInput協議中。那這就好辦了,自定義UITextField的,重寫- (void)deleteBackward;,這個方法一執行,就發通知,或者走代理,都可以。后來我發現這有點麻煩,我還要自定義,發通知/代理,太麻煩了。所以我就想通過監測UITextField的location來區分輸入或刪除。

#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) {        // 刪除到空格后一位的時候,自動把空格也去掉        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;    // 手機號最多輸13位 包含兩個空格,防止文本替換    if(range.location >= 13){      return NO;    }  }  return YES;}

其實用戶一多,對開發者來說成長會非常快,因為什么情況都會遇到,我們就在解決問題中成長。

以上所述是小編給大家介紹的iOS開發中蘋果輸入手機號變用戶的名字,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!

 

注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广昌县| 万山特区| 明溪县| 延安市| 南安市| 扶风县| 师宗县| 清新县| 廊坊市| 秦安县| 镇原县| 石景山区| 古蔺县| 崇左市| 兴文县| 翁牛特旗| 蒙山县| 呼伦贝尔市| 永年县| 汨罗市| 四会市| 刚察县| 梨树县| 景德镇市| 辛集市| 余干县| 如东县| 交口县| 汶上县| 浑源县| 昂仁县| 兴文县| 沿河| 凯里市| 泾源县| 昭苏县| 亳州市| 博爱县| 博爱县| 崇文区| 崇文区|