4

UITextField の文字数を制限するにはどうすればよいですか?

つまり、10 文字に制限すると、ユーザーは 10 文字以上入力できなくなります。また、+、= などの特殊文字を入力できないようにしたいと考えています。

どうすればいいですか?

4

5 に答える 5

10

UITextField のサイズを制限するコード サンプルを次に示します。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  if ([[textField text] length] + [string length] - range.length > MAX_LENGTH) {
    return NO;
  } else {
    return YES; 
  }
}
于 2011-04-07T21:52:34.120 に答える
7

UITextFieldDelegate protocolビュー コントローラーを に準拠させて実装することができます。textField:shouldChangeCharactersInRange:replacementString:これは、ユーザーがテキスト フィールドに新しい文字を入力するか、既存の文字を削除するたびに呼び出されます。

次に、ユーザーが入力したばかりの文字の有効性を確認し、NO無効な文字 (質問の +、= など) を返すことができます。

このブログ投稿にその例があります。

于 2009-08-02T05:07:42.483 に答える
1

ユーザーが文字を入力するのを積極的に制限したい場合は、UITextField のデリゲートを設定してイベントを処理し、textDidChange 通知を確認します。入力したテキストが変更されるたびに確認し、不要な文字 (または希望の制限を超える余分な文字) が入力されている場合は、それらを削除できます。

詳細については、こちらを参照してください: http://discussions.apple.com/thread.jspa?messageID=6971952

于 2009-08-01T09:26:17.793 に答える
0

UITextField に UIKeyboardTypeNamePhonePad を使用してみてください。それには文字と数字しかありません:

textField.keyboardType = UIKeyboardTypeNamePhonePad;
于 2010-11-19T02:02:37.937 に答える