2009-08-01 16 views
4

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

すなわち、私は10文字に制限すると、ユーザーは10以上を入力することができません。また、私はなど、+のようないくつかの特殊文字を入力することから彼を防ぎたい、=

私はどのように行うだろうこの?

+0

は、この[解答](http://stackoverflow.com/q/433337/1603234) – Hemang

答えて

1

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

詳細はこちらを参照してください:あなたはあなたのビューコントローラがUITextFieldDelegate protocolに準拠してtextField:shouldChangeCharactersInRange:replacementString:を実装して作ることができる http://discussions.apple.com/thread.jspa?messageID=6971952

+0

をチェックし、ユーザーが付属のBluetoothキーボードを持っている場合、私はUITextFieldDelegate – marcc

7

- これは、いつでもユーザーがテキストフィールドに新しい文字と呼ばれたり、既存の文字を削除しています。

あなたは、ユーザーがちょうど(+のように、=あなたの質問のように)無効な文字のためNOを返す、有効性のために入力した文字を確認することができます。

このblog postでこの一例があります。

0

は、あなたのUITextFieldのためのUIKeyboardTypeNamePhonePadを使用してみてください。それはそれだけで文字と数字を持っています。ここ

textField.keyboardType = UIKeyboardTypeNamePhonePad; 
+0

でtextDidChange通知があるとは思いません、彼らは任意の文字を入力することができます、これはそれらを制限しません –

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; 
    } 
} 
+0

ありがとう!助けて頂きました。 –

+0

多くのおかげ...これは私を助けた... – JAHelia

2

これは私のために動作します。

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 

    if([textField.text length]<=8){ 
    [tf resignFirstResponder];  
     return YES; 
    } 
    else 
     return NO; 
}