僅幾行iOS代碼限制TextField輸入長度_IOS

來源:互聯網
上載者:User

網上有很多限制textField輸入長度方法,但是我覺得都不是很完美,準確來說可以說是不符合實際開發的要求,因此在這裡整理一下textField限制輸入長度的方法.

 我所採用的並不是監聽方法而是最不同的代理實現方法,為什麼不使用監聽呢???
 當你看到這篇文章很有可能視是為一件事所苦惱那就是使用監聽限制輸入長度後不能夠完美的控制輸入內容.

 舉一個簡單的例子: 

你要限制輸入長度為30個字元,當你輸入30個字元後監聽的確可以很好的控制不讓你繼續輸入,但是問題也隨之而來,當你把游標移動到輸入內容中間的位置後,你是可以繼續輸入的這種輸入讓人很苦惱因為當你輸入後你的游標會移動到最後,並且限制你繼續輸入,但是你剛剛輸入的內榮卻保留在了文本中間,這很不符合要求.

 因此在這裡採用代理可以很好的實現我們想要的效果,僅僅幾行代碼希望給你帶來協助.

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {    if (textField == self.liveThemeTextField) {  //這裡的if時候為了擷取刪除操作,如果沒有次if會造成當達到字數限制後刪除鍵也不能使用的後果.    if (range.length == 1 && string.length == 0) {      return YES;    }    //so easy    else if (self.liveThemeTextField.text.length >= 30) {      self.liveThemeTextField.text = [textField.text substringToIndex:30];      return NO;    }  }  return YES;}

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.