English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
オンライン上には多くのtextFieldの入力長さを制限する方法がありますが、私の意見ではどれも完璧ではありません。正確には、実際の開発要件に合っていないと言えます。したがって、ここでtextFieldの入力長さを制限する方法をまとめます。
私はリスニングメソッドではなく、非常に異なるアゲント実現メソッドを使用しています。なぜリスニングを使用しないのか?63;63;63;
この記事を見たとき、おそらく困っていることの一つが、入力長さを制限した後に、入力内容を完璧に制御できないことでしょう。
簡単な例を举いてみましょう:
あなたが制限したい入力長さ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; } //とても簡単 else if (self.liveThemeTextField.text.length >= 30) { self.liveThemeTextField.text = [textField.text substringToIndex:30]; return NO; } } return YES; }
これでこの記事のすべての内容が終わります。皆様の学習に役立つことを願っています。また、ナイアラチュートリアルのサポートをどうぞ多くお願いいたします。