iOS開發若何更好的限制UITextField的輸入長度?
前言
實際專案開發中我們會在很多時候遇到輸入框要限制字數的情況(如果你登陸註冊的時候可能密碼使用者名稱要限制幾位,或者你在評論一個帖子的時候要限制你評論的字數等等),那麼接下來就讓我們一起看看到底要怎樣處理才能更好的實現對輸入長度的控制。
一般同學在看到這個需求的時候首先想到的是使用 UITextFieldDelegate的代理方法就直接控制就可以:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; // return NO to not change text
例如:我們具體需求要限制輸入長度為10,那麼就會:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField == MyTextField) {
if (textField.text.length > 10) {
return NO;
}
}
return YES;
}
缺點是:比如說要求控制10個字,當輸入到第9個的時候,一下打拼音打出來好幾個字,或者點選聯想詞出來好幾個字的話,那麼輸入框裡面的字數就大於10個了。那麼應該怎麼處理呢?
UITextField有UITextFieldTextDidChangeNotification這個訊息通知(注意:監聽訊息還要記得解除監聽)使用方法:
[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldDidChange:(UITextField *)textField{
if (textField == self.titleField) {
if (textField.text.length > 10) {
textField.text = [textField.text substringToIndex:10];
}
}
}
相關文章
- 表單限制字串輸入長度字串
- iOS TextFiled,TextView 長度限制,表情限制iOSTextView
- iOS金額輸入限制iOS
- vue---input只能輸入數字,且限制長度Vue
- UITextView UITextField限制輸入字數以及精準剩餘字數顯示UITextView
- element-ui 輸入框el-input 輸入長度限制元件不生效UI元件
- 解決element-ui 輸入框el-input 輸入長度限制元件不生效UI元件
- jQuery Validate限定輸入字串的長度jQuery字串
- 直播軟體開發,限制富文字框輸入的字元數上限字元
- 讓 Android 輸入框只能輸入固定長度的中英文Android
- 短視訊軟體開發,flutter 輸入框限制輸入 數字、小數Flutter
- EditText中輸入資訊的限制的方法
- 文字框限制輸入字數的JSJS
- 編寫一個程式求輸入字串的長度字串
- 從一次輸入框無法輸入的bug,談如何限制輸入框輸入型別型別
- MySQL的欄位數量以及長度限制MySql
- 關於建立索引的 767 bytes 長度限制索引
- iOS開發使用UIKeyInput自定義密碼輸入框iOSUI密碼
- Latex中輸入角度的度°
- 帶allow-create的el-select限制長度
- Android 最簡單的限制輸入方式之一Android
- Python限制輸入數字的範圍常用方法!Python
- 文字框限制輸入字數效果
- 偷樑換柱 - iOS實現UITextField+LimitiOSUIMIT
- python3 使用argparse更好的組織輸入引數Python
- 按位長度進行字串的分割輸出,長度不足補0字串
- UITextFieldUI
- Angular.js 限制輸入框輸入內容,為純數字AngularJS
- input輸入框加入限制只能輸入正整數,輸入其他字元會自動清除字元
- 在iOS中運用React Component的思路,效率更高的開發UI,更好的複用UI元件iOSReactUI元件
- pbootcms網站欄目url字數長度限制的修改方法boot網站
- Python和前端開發哪個更好入門?Python前端
- 玩轉iOS開發:iOS中的NSOperation開發(一)iOS
- 麒麟系統開發筆記(六):安裝QtCreator開發IDE中的中文輸入環境Fcitx輸入法筆記QTIDE
- 解決織夢dedecms限制標題長度
- vue element el-input輸入限制數字Vue
- [譯] 如何成為更好的開發者
- Vagrant:更好的個人開發環境開發環境