2010-05-20 2 views
0

사용자 이름과 비밀번호를위한 행에 두 개의 텍스트 필드가 있습니다. 사용자 이름 입력을 마쳤 으면 가장 자연스러운 일은 웹 양식과 마찬가지로 다음 텍스트 필드를 탭하는 것입니다. 하지만 그 방법은 효과가 없습니다. 첫 번째 입력란의 키보드에서 '완료'를 누른 다음 두 번째 입력란을 탭할 때까지 다음 입력란을 수정할 수 없습니다.다음 텍스트 필드를 탭하면 "완료"키와 동일한 동작을 트리거 할 수 있습니까?

내 질문은 두 개의 텍스트 필드를 설정하여 첫 번째 편집을 끝내고 두 번째 필드를 탭할 때 두 번째 텍스트 필드 편집을 시작할 수 있습니까?

답변

0

당신은 몇 가지 수행해야합니다이 발생하지 않는 경우보기 컨트롤러에

  1. (예를 들어, 사용 textFieldShouldBeginEditing) 활성 텍스트 필드를 추적

  2. 캐치 접촉을하고 활성 textField에서 활성 textField가 resignFirstResponder를 일으키고 새 textField가 firstFirstResponder가됩니다.

다음 코드는 검증되지 않은하지만 좋은 출발점이되어야한다. 활성 textField 외부의 다른 것을 탭하면 textField가 포커스를 잃게됩니다.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

    UITouch *touch = [[event allTouches] anyObject]; 
    if ([currentTextView isFirstResponder] && [touch view] != currentTextView) { 
     [currentTextView resignFirstResponder]; 
     if ([[touch view] isKindOfClass:[UITextField class]]) 
      [[touch view] becomeFirstResponder]; 
    } 
    [super touchesBegan:touches withEvent:event]; 
} 
+0

감사합니다. – trevrosen

관련 문제