2

애니메이션을 시작하고 응답까지 UIView 알파를 0.5로 변경하고 싶기 때문에 키보드가 닫힌 후에 내 로그인 메소드를 호출하고 싶습니다. 키보드가 표시되는 동안 호출 방법 AFTER textFieldShouldReturn

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

     [self validateCredentialsRemotely]; 

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

키보드

는 방법 validateCredentialsRemotely 및 화면 정지에 전에 전화를 를 기각되지 않습니다. 나는 먼저 그것을 기각하고, 그 방법을 부르고 싶다.

답변

2

사용이 통지 ..

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

이 validateCredentialsRemotely 메서드를 호출이 첫 번째 문제

1

시도해보십시오! keyboardWillHide 방법에

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

나는 그것을 시도 해결할 수 있습니다. 하지만 작동하지 않습니다. validateCredentials가 표시되는 동안 키보드가 표시되고 있습니다. – Dejell

+0

@Odelya textfieldshouldReturn이 호출되는지 확인하십시오! 디버깅하거나 NSLog 문을 메서드 시작에 삽입하여 검사 할 수 있습니다! –

+0

예. 호출 중입니다. – Dejell