2011-03-11 9 views
0

그래서 기본적으로 관찰자가있는 방법이 있는지 알아야합니다. 키보드가 숨겨져 있으면 다른 메서드가 호출됩니다.키보드가 숨길 때까지 기다리십시오.

내가 가진 문제는 키보드를 닫은 후에 입력을하는 동안 사용자가 텍스트 필드를 볼 수 있도록보기를 위로 이동하기 때문에 원래 위치로보기를 가져 오는 두 개의 애니메이션을 커밋하고 애니메이션 플립 핑 키보드가 완전히 숨기기 전에보기가 있지만 뒤집기가 발생하기 때문에 약간의 그래픽 결함이 있습니다.

나는 sleep()을 시도했고, 또 다른 wait 메소드는 운이 없었다.

강령은 기본적으로 문제는 키보드가 완전히 숨기기되지 않는 것입니다이

- (BOOL)textFieldShouldReturn:(UITextField *)textFieldi{ 

[textFieldi resignFirstResponder]; 
    [UIView beginAnimations:nil context:NULL]; 

    [UIView setAnimationDuration:1.0]; 

    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; 

    [self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:0]; 

    CuantoFaltaiOSAppDelegate * del = [CuantoFaltaiOSAppDelegate instance]; 

    del.headerView.frame = CGRectMake(0, 20, del.headerView.frame.size.width, del.headerView.frame.size.height); 

    [UIView commitAnimations]; 

    return YES; 
} 

이며, 플립은 perfomed, 그래서 나는 그것을 기다릴 수있는 방법이 필요합니다.

답변

6

UIKeyboardDidHideNotification에 등록하십시오.

[[NSNotificationCenter defaultCenter] addObserver:(id) 
             selector:(SEL) 
              name:(NSString *) 
              object:(id)]; 

예 :

(당신의 viewWillAppear: 방법에 넣고) 다음과 같이 UIKeyboardDidHideNotification 구독하기 :

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil]; 

이것은 당신이 어디 (keyboardDidHide:라는 방법을 가정하여 애니메이션 로직이 상주합니다)

+0

+1 좋은 답변, 방금 예제를 추가하고 도움이 될 내 대답을 닫았습니다. – theChrisKent

+0

감사합니다. 대부분 내 문제를 해결했지만 다른 문제가 발생했지만 BOOL : D로 쉽게 해결할 수 있습니다. –

관련 문제