2013-04-09 4 views
0

여러 개의 UITextField가 있고 그 사이를 전환하려면 다음을 클릭하려고합니다. 1-4에서 각 태그를 설정했습니다. 코드를 실행하면 두 번째 코드로 이동하지만 세 번째 코드로 이동하지 않습니다. textField.tag + 2를 점프하면; 그것은 세 번째 필드로 점프 할 것이지만, 거기에서 계속 이동하지는 않습니다. 여기 내 코드입니다 :UITextField nextResponder는 한 번만 작동합니다.

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
theScrollView.frame = CGRectMake(theScrollView.frame.origin.x, theScrollView.frame.origin.y, 
           theScrollView.frame.size.width, theScrollView.frame.size.height + 265 - 50); //resize 

NSInteger nextTag = textField.tag + 1; 
// Try to find next responder 
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag]; 
if (nextResponder) { 
    // Found next responder, so set it. 
    [nextResponder becomeFirstResponder]; 
} else { 
    // Not found, so remove keyboard. 
    [textField resignFirstResponder]; 
} 
return NO; // We do not want UITextField to insert line-breaks. 
} 
+0

모든 'UITextField' 객체의 델리게이트 집합을 확인 했습니까? 'textfield'의 태그를 가진 값을 디버깅하려 했습니까? 뷰 계층 구조에 중복 태그가 없는지 확인 했습니까? BTW,'viewWithTag'에서 반환 된'UIView'가 실제로'UITextField' 객체인지 확인해야합니다. – elitalon

+0

와우, 그게 대표 야. 나는 장님입니다! 감사! 답변을 게시 할 수 있도록 답변을 게시하고 싶습니까? –

+0

아래에 답변을 추가했습니다. 귀하의 투표를 감사드립니다 :) – elitalon

답변

0

나는 다음과 같은 항목을 검토 할 것 :

  1. 모든 UITextField 객체는 대리인이
  2. 디버거를 시작하고 모든 textfield의 태그의 값을 검사 설정이 확인하는 것이
  3. 보기 계층 구조에 중복 태그가 없는지 확인하십시오.
  4. UIView 개체가에 반환됨을 테스트하십시오.은 실제로 UITextField 개체입니다.