2011-01-27 10 views
0

私は、RootViewControllerとしてタブバーを持つWindowベースのアプリケーションを作成しました。いずれかのタブで、TextBoxとTextViewを提供しました。内部に書き込むことができる文字数(TextBoxとTextView)を制限したい。 誰かがそれを行う方法を知っている場合は助けてください。 ありがとう制限をXcodeのTextBoxとTextViewに設定する

答えて

0

"タブバー"と "タブ"はどういう意味ですか? 私はあなたがRootViewControllerとしてUITabBarControllerを持っていると仮定し、UIViewのいくつかのサブクラスは、TabBarItemをタップするときに表示されるタブの1つです。 さらに、UITextViewと(UITextField?)がUIViewサブクラスに追加され、TabBarItemではなく、

そのような場合は、textプロパティを使用してチェックを行うことができます:

if([yourTextView.text length] > 42) { 
    // truncate text; e.g. throw away last part or first part until the length is below 42 
} 

はUITextFieldのために同じである必要があります - ちょうどあなたがUITextFieldDelegateを実装する必要があり、再び

0

をテキストプロパティを使用し、 /またはUITextViewDelegate方法、

textField:shouldChangeCharactersInRange:replacementString:

又は

textView:shouldChangeTextInRange:replacementText:

である。

これらのメソッドを実装するクラスのインスタンスを、ビューのデリゲートとして設定します。このメソッドのロジックは、入力テキストを調べ、その長さに基づいて何をすべきかを決定する必要があります。

+0

おかげで多くのことを... – Ajit

+0

私は、デリゲート追加することで、同様の方法を見つけたします。#define MAX_LENGTH 20 を - (BOOL)テキストフィールド(UITextFieldの*)テキストフィールドshouldChangeCharactersInRange:(NSRange)レンジreplacementString:(NSStringの*)ストリング {IF(textField.text.length> = MAX_LENGTH && range.length == 0){ リターンNO。 // NOを返してテキストを変更しない } else {return YES;} } – Ajit

0

私は、デリゲートを使用してこの問題を実装するための他の同様の方法を見つけた:あなたの助けを

#define MAX_LENGTH 20 

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
if (textField.text.length >= MAX_LENGTH && range.length == 0) 
{ 
    return NO; // return NO to not change text 
} 
else 
{return YES;} 
} 
関連する問題