2012-05-26 2 views
0

TextField1 및 TextField2가 있습니다.
TextField2로 인해 키보드가 표시된 경우에만 스크롤보기를 스크롤하고 싶습니다. 이것은 실제 코드입니다.
해결책이 있습니까?조건부 스크롤보기

-(void) viewWillAppear:(BOOL)animated {  
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardDidShow:) 
              name:UIKeyboardDidShowNotification 
              object:self.view.window]; 

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

-(void) keyboardDidShow:(NSNotification *) notification { 
    self.ScrollView.center = CGPointMake(self.originalCenter.x, 
             self.originalCenter.y-100); 
} 

-(void) keyboardDidHide:(NSNotification *) notification { 
    self.ScrollView.center = CGPointMake(self.originalCenter.x, 
             self.originalCenter.y); 
} 

답변

1

당신은 UITextfield 대리자 메서드를 수신해야합니다 :

textfield2.delegate = self; 

-(void)textFieldDidBeginEditing: (UITextField*)textField { 
    if (textField == textField2) { 
     //ENABLE THE SCROLLING 
    } 
} 

-(void)textFieldDidEndEditing: (UITextField*)textField { 
    if (textField == textField2) { 
     //DISABLE THE SCROLLING 
    } 
} 

그냥 여러분의 필요에 방법을 사용자 정의 할 수 있습니다.

는 키보드 쇼, 당신은 확인하는 부울 수 있습니다 때 정확하게 할 필요가있는 경우 :

if (textField == textField2) { 
    scrollBool = YES; 
    } 
} 

-(void)textFieldDidEndEditing: (UITextField*)textField { 
    if (textField == textField2) { 
     scrollBool = NO; 
    } 
} 

-(void)keyBoardDidShow.... { 
    if (scrollBool) { 
     // do the scrolling 
    } 
} 
+0

GREAT을! 당신의 대답으로 해결해 줘서 고마워. – Beppino66