2010-12-20 30 views
1

私はテキストフィールドを検証しようとしています。私は2つのテキストフィールドUsernameとPasswordを持っています。私は、ユーザー名のテキストフィールドが空のままになっている場合、ユーザーがユーザー名を入力するまでユーザーがパスワードのテキストフィールドに移動することを許可しないようにします。これを行うためのサンプルコードは非常に高く評価されます。UITextfieldの有効化

ありがとうございます。

+0

@middaparka Oof、ええ、私はその長い答えを入力する前にそれを逃した。 @Prazi本当に、以前の質問に役立つ回答の横にあるチェックマークをチェックしてください。このページの上部にあるユーザー名をクリックすると簡単にアクセスできます。 –

答えて

0

でこれを確認したいですempty.Ifが空でない場合は、パスワードフィールドを最初のレスポンダにすることができます。それ以外の場合は、最初のレスポンダをユーザ名のテキストフィールドとして保持します。

0

あなたがテキストフィールドがないかどうかを確認、文字がtextfieldDidEndEditingに入力されたかnot.And場合はテキストフィールド内firstResponder.Thenは、メソッドのチェックをbegineditingなかったとして、ユーザー名のテキストフィールドを作る– textFieldDidBeginEditing:デリゲート

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
if(textField==passwordField) 
{ 
if([userField.text isEqualToString:@""]) 
//Dont leave user field empty 
} 
} 
2

送信ボタンがあると仮定すると、ユーザーを人為的に1つのフィールドにまとめることはお勧めしません。代わりに、両方のフィールドが有効になるまでsubmitButton.enabled = NOを設定します。フィールドが必須であると指定した場合、ユーザーはテキストフィールドのフォーカスを変更できない場合とほとんど同じように混乱することはありません。

検証では、両方のテキストフィールド 'EditingChangedを設定して、あなたのviewContoller内のメソッドを指しています(ValidateEntryなど)。それらにユニークなタグを付けてください。ちょうど1と2か、何がありますか。

ValidateEntryフィールドでは、どちらが編集されているかを判断します。 - (id)送信者は、どちらがどちらであるかを示すタグを持ちます。両方のフィールドが有効な場合、送信ボタンを利用可能にします。submitButton.enabled = YES。いずれかが無効な場合は無効にします。

私の意見では、これは非常に友好的であり、まったく同じことになります:空のフィールドを送信しません。

1

は、のviewDidLoad

yourPassWordTextField.enabled=NO; 

でパスワードのTextFieldを無効にしても、このdeclair

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; 

    [notificationCenter addObserver:self 
          selector:@selector (handle_TextFieldTextChanged:) 
           name:UITextFieldTextDidChangeNotification 
          object:self.yourUserIdTextField]; 

- (void) handle_TextFieldTextChanged:(id)notification { 

    if(![yourUserIdTextField.text isEqualToString:@""]) 
    { 
      yourPassWordTextField.enabled=YES; 
    } 
     else 
     yourPassWordTextField.enabled=NO; 
} 
.hファイルで

-(void)registerForTextFieldNotifications; 

を使用してテキストフィールドに通知を追加します。

関連する問題