UITextField の文字数を制限するにはどうすればよいですか?
つまり、10 文字に制限すると、ユーザーは 10 文字以上入力できなくなります。また、+、= などの特殊文字を入力できないようにしたいと考えています。
どうすればいいですか?
UITextField の文字数を制限するにはどうすればよいですか?
つまり、10 文字に制限すると、ユーザーは 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;
}
}
UITextFieldDelegate protocol
ビュー コントローラーを に準拠させて実装することができます。textField:shouldChangeCharactersInRange:replacementString:
これは、ユーザーがテキスト フィールドに新しい文字を入力するか、既存の文字を削除するたびに呼び出されます。
次に、ユーザーが入力したばかりの文字の有効性を確認し、NO
無効な文字 (質問の +、= など) を返すことができます。
このブログ投稿にその例があります。
ユーザーが文字を入力するのを積極的に制限したい場合は、UITextField のデリゲートを設定してイベントを処理し、textDidChange 通知を確認します。入力したテキストが変更されるたびに確認し、不要な文字 (または希望の制限を超える余分な文字) が入力されている場合は、それらを削除できます。
詳細については、こちらを参照してください: http://discussions.apple.com/thread.jspa?messageID=6971952
UITextField に UIKeyboardTypeNamePhonePad を使用してみてください。それには文字と数字しかありません:
textField.keyboardType = UIKeyboardTypeNamePhonePad;