2013-04-09 1 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 개체입니다.
관련 문제