2012-03-06 2 views
10

XIB에서 여러 개의 텍스트 필드를 사용하는 뷰가 있습니다. 보기가 창에로드되면 바로 첫 번째 텍스트 필드가 첫 번째 응답자가됩니다. 내 컴퓨터의 키보드에서 Tab 키를 눌러 다음 텍스트 필드로 이동하면 즉각적인 텍스트 필드를 제외한 모든 다른 텍스트 필드도 첫 번째 응답자가되고 텍스트 필드 편집 시작 대리자 menthod가 모든 텍스트 필드에 호출됩니다. 무엇이 문제 일 수 있습니까? 이것은 시뮬레이터에서 iOS 장치 용 블루투스 키보드를 사용할 때도 시스템의 키보드를 사용할 때만 발생하지 않습니다.TextField becomeFirstResponder Tab 키 (키보드) 동작에 대한 문제

+1

방금 ​​같은 문제가 발생했습니다. textFieldShouldBeginEditing 대리자 메서드를 사용하여 편집을 막을 수는 있지만 탭 키 또는 textField로 인해 textFieldShouldBeginEditing이 호출되었는지 찾는 방법이 있습니다. – Vladimir

+0

나는 또한 같은 문제에 직면 해있다 ... 정말로 사과가 텍스트 필드 안의 탭 키를 누르지 않는 이유는 무엇인가? shouldChangeCharactersInRange : replacementString : – HurkNburkS

답변

2

보기에서 텍스트 필드의 계층 구조와 관련하여 탭 키 => 다음 텍스트 필드로 탐색을 누르십시오.

Tab 키를 누를 때 textfield는 텍스트 필드만큼 많은 횟수로 호출됩니다. 즉, 5 개의 textfields => 하나의 tab 키를 누르면 5 개의 인스턴스가 모두 호출됩니다. tab 키를 누를 때 textfielddidbeginediting은 새 텍스트 필드의 인스턴스와 관련하여 한 번만 호출됩니다. 따라서 텍스트 필드의 모든 논리는 textfielddidbeginediting 대리자 메서드에있는 것이 더 좋습니다.

다음은 위임 메서드의 기본 특성이며 문제는 아닙니다.

관련 문제