2011-08-25 7 views
0

키보드가 올라와있는 동안 UITextFields를 탐색하려고합니다. 내부에 텍스트 필드가있는 UIScrollView가있는 xib 설치가 있습니다. UITextField가 첫 번째 응답자로 설정되면 contentOffset.y가 ​​변경됩니다. 첫 번째 두 텍스트 필드는 정상적으로 반응하지만 스크롤 뷰는 선택한 텍스트 필드를 지나쳐 촬영됩니다. 그리고 내가 얻은 목록에서 멀어 질수록 점차 더 나 빠지게됩니다. 설치 NSLog 문과 중단 점은 텍스트 필드를 처음 선택할 때 올바른 y 값이 사용되지만 scrollview의 scrollViewDidScroll 메서드는 텍스트 필드를 지나서 여러 번 호출 된 후 바로 호출된다는 것을 보여줍니다.contentOffset을 설정 한 후 UIScrollView 자동 스크롤

-(void)textFieldDidBeginEditing:(UITextField *)textField{ 
    textField.inputAccessoryView = accessoryBar; 
    int offset = 30; 
    [scrollView setContentOffset:CGPointMake(0, textField.frame.origin.y -offset) ]; 
} 

-(void)textFieldDidEndEditing:(UITextField *)textField{ 
    [scrollView setContentOffset:CGPointMake(0, 0)]; 
} 

-(BOOL) textFieldShouldReturn:(UITextField*) textField { 
    [textField resignFirstResponder]; 
    return YES; 
} 

나는 엑스 코드 4.1 사자에

+0

scrollViewDidScroll에서 변경하는 사항이 있습니까? 또는 다른 곳에서 오프셋 된 컨텐츠를 설정하고 있습니까? – MishieMoo

+0

NSLog를 사용하여 오프셋 호출을 인쇄하는 것 외에는 scrollViewDidScroll을 사용하지 않습니다. "NSLog (@"scrollview : offsetY : % f 높이 : % f ", scrollView.contentOffset.y, scrollView.contentSize.height);" – user912649

+0

오프셋은 항상 30입니까? 문디 (Mundi)와 같이 확실히 textField 프레임을 기록하십시오. – MishieMoo

답변

0

어쩌면 당신의 accessoryBar이 엉망으로되어 일을 아이폰 OS 4.3을 실행하고? inputAccessoryView 속성은 일반적으로 읽기 전용이므로 UITextField 하위 클래스로 가정합니다. accessoryBar없이 코드를 사용해보십시오.

+0

나는 accessoryBar 지정을 주석 처리했으며, 동일한 결과 – user912649

+0

당신은 또한 NSFieldField 프레임을 작성 했습니까? 그것들은 아마 다른 좌표계에있는 것처럼 들리네 ... 예상대로? – Mundi

+0

예, 예상대로입니다 – user912649

관련 문제