2

アニメーションを開始し、応答まで UIView アルファを 0.5 に変更したいので、キーボードが閉じられた後にログインメソッドを呼び出したいと思います。

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
    if (theTextField == self.passwordText){
        //hide the keyboard
        [theTextField resignFirstResponder];

        [self validateCredentialsRemotely];

    }else{
         [self.passwordText becomeFirstResponder];
    }
    return YES;
}

メソッドの呼び出し前にキーボードが閉じられずvalidateCredentialsRemotely、キーボードが表示されている間に画面がフリーズします。最初に却下してから、メソッドを呼び出したいと思います。

4

2 に答える 2

2

この通知を使用してください..

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

keyboardWillHide メソッドで、validateCredentialsRemotely メソッドを呼び出します。これにより、最初の問題が解決する場合があります

于 2012-12-20T12:51:27.583 に答える
1

これを試して!

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
if (theTextField == self.passwordText){
    //hide the keyboard
    [theTextField resignFirstResponder];

    [self performSelector:@selector(doAnim) withObject:nil afterDelay:0];

    }else{
        [self.passwordText becomeFirstResponder];
    }
    return YES;
}
- (void)doAnim {
    //start animation
    self.view.alpha =0.5;
    [activityWheel startAnimating];
    //validate user
    [self validateCredentialsRemotely];
    //end animation
    [activityWheel stopAnimating];
    self.view.alpha =1;
}
于 2012-12-20T12:50:31.090 に答える