2012-01-18 10 views
5

UIAlertViewStylePlainTextInputを使用してUIAlertViewにUITextFieldを追加しました。 alertviewに存在するテキストフィールドを検証する必要があります。つまり、空であってはなりません。iphone検証がuialertviewに追加されました

どうすればよいですか?

答えて

0

あなたは、検証を処理するためのファイルの所有者に法に、UIAlertViewDelegateメソッドテキストフィールドのイベントは、「編集が終了しなかった」

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
0

バインド、または類似から、あなたのvalidateメソッドを呼び出すことができます。このメソッドは、controller.mファイルに記述し、controller.hファイルに宣言します。コントローラファイルの正確な名前は、アプリケーションコードベースの構造によって異なります。

検証に失敗した場合の対処方法。コンテンツは空ですが、アプリケーションのニーズに応じて異なります。たとえば、コンテンツが空の場合は、ユーザーに警告し、フォーカスをテキストフィールドにリセットする必要があります。

iOSプログラミングに若干の経験がある方は、Ray Wnderlichのチュートリアルが役立つかもしれません。 http://www.raywenderlich.com/

「iOS Apprentice」がうまく実行されていることがわかりました。また、Dave Markの「iOS 5開発の開始」という新しい本が役に立つかもしれません。

0

は、デリゲートメソッド

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (buttonIndex == 0)return; //for cancel button 

    UITextField *textField = [alertView textFieldAtIndex:0]; // since there is only one UITextField in alertView 
    if ([textField.text length] > 0) // checking the length of the text in UITextField 
    { 
      // Your code goes here 
    } 
} 

に、私はこのことができます願っていますあなたの現在のViewController
にalertViewのデリゲートを設定します。
BR、ハリ

0

1:テキストフィールドの編集が変わったときに、テキストの長さを確認します:

self.alertViewTextField = [alertView textFieldAtIndex:0]; 

2:alertViewでUITextFieldを取得

[self.alertViewTextField addTarget:self action:@selector(alertViewTextFieldDidChanged) forControlEvents:UIControlEventEditingChanged]; 

-(void)alertViewTextFieldDidChanged{ 
    if(self.alertViewTextField.text.length == 0){ 
     // ... 
    } 
} 
11

私たちはあなたが持っていると仮定しましょうUIAlertViewの他のボタンの最初のボタンと同様の "OK"ボタン(または同様のもの)。さらに、テキストフィールド内のテキストの長さが0より大きい場合にのみ、そのボタンを有効にしたいとします。次に、検証のソリューションは簡単です。 UIAlertViewのデリゲートで実装:

- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView 
{ 
    return [[alertView textFieldAtIndex:0].text length] > 0; 
} 

これはclickedButtonAtIndex :)を使用して他の回答(の一部の上に利点があり、ユーザーがテキストフィールドに有効な入力が含まれているかどうかを即座に認識しています。

このデリゲートメッセージは、Appleのマニュアルではあまりよく説明されていませんが、うまく機能します。テキストフィールドの値を変更すると、このメッセージが送信され、それに応じて「OK」ボタンが有効または無効になります。

関連する問題