2010-04-01 7 views
0

나는 몇 참조를 본 것 (예를 들어 here) "대리인이 파일의 소유자에 연결되어 있는지 다시 확인 말을 아이폰에서 기각 키보드를 얻는 데 문제가 사람에 반응한다.uitextfield 대리인은 파일 소유자 여야합니까?

이 반드시 사실인가요? 아니면 그냥 표준 연습? 내가 UIViewController의 하위 클래스와 같은 다른 펜촉에 내 개체를 가질 수 없으며 내가 원하는대로 연결할 수 있습니까? 나는 파일 소유자가되는 개체에 모든 것을 라우팅해야하는 것을 싫어합니다.

키보드가 사라지는 데 어려움을 겪고 있습니다. 중단 점을 설정하고 코드를 단계별로 실행할 수 있으므로 대리자와 연결되어 있습니다. [theTextField resignFirstResponder]가 호출됨을 알 수 있습니다.(그리고 참을 반환), 키보드는 여전히 사라지지 않을 것입니다.

다른 제안 사항이 있으십니까?

답변

0

특정보기의 모든 컨트롤은 nib 파일을 소유 한 View Controller와 통신하기위한 것입니다. 예를 들어 UITextField의 값을 변경하는 UISlider가 있더라도 슬라이더의 값이 변경되고 텍스트 필드의 텍스트가 업데이트되면 UIViewController 하위 클래스의 메서드에 의해 처리됩니다. 따라서 10 번 중 9 번 UIViewController가 nib 파일의 소유자가됩니다.

일반적으로 정의하려는 텍스트 필드 대리자 메서드는 textFieldShouldReturn이며 완료 한 것처럼 들리는 텍스트 필드에 resignFirstResponder을 호출합니다.

콘센트가 theTextField에 연결되어 있는지 확인하십시오. 그것은 nil 일 수 있고 런타임은 오류가 아닌 noop로 [nil resignFirstResponder]을 처리합니다.