2013-06-21 1 views
7

이것은 간단해야하지만 두통이되고 있습니다. 사용자가 텍스트를 입력하고 검색을 클릭하는 UITextField가있는보기가 있습니다. 그러면 다른보기 컨트롤러가 나타나고 첫 번째보기가 사라지기 전에 텍스트 필드의 첫 번째 응답자가 사임합니다. 두 번째보기가 닫히면 첫 번째보기는 자동으로 텍스트 필드를 첫 번째 응답자가되게하고이를 억제하는 방법을 찾을 수 없습니다. 아무도 내가 두 번째보기를 닫을 때 키보드가 계속 나타나지 않도록 할 수있는 아이디어가 있습니까?보기가 보이면 UITextField가 첫 번째 응답자가되지만, 원하지 않습니다.

나는 viewWillAppear에서 FirstResponder를 재시도하려고했지만 아무런 효과가 없었습니다. 나는 viewDidAppear에서 똑같이 시도했지만 키보드가 튀어 나오고 즉시 어색하게보고있는 것을 취소합니다.

감사합니다.

+3

몇 가지 코드를 게시 할 수 있습니까? – ggrana

+0

"첫 번째보기가 사라지기 전에 텍스트 필드에서 첫 번째 응답자를 사임합니다."정확하게 텍스트 필드에 첫 번째 응답자를 사퇴하라고 말합니까? 어떤 방법으로? –

+0

viewWillDisappear에서 첫 번째 응답자를 사임하고 두 번째보기가 표시되기 전에 키보드가 닫히지 만 두 번째보기를 닫으면 키보드가 사라져 화면이 사라지고 키보드가 화면 하단에서 움직입니다. – SeanT

답변

5

수정 사항을 발견했지만 그다지 좋지 않습니다.

viewWillAppear 바로 다음에 viewDidAppear 앞에 canBecomeResponder 메시지가 텍스트 필드로 전달되는 것으로 나타났습니다.

그래서 viewDidAppear에 BOOL 값을 YES로 설정하고 textField:shouldBeginEditing 메서드에서이 값을 사용했습니다. 기본적으로 viewDidAppear이 아직 호출되지 않은 경우 textField:shouldBeginEditing이 NO를 반환했습니다.

+0

이것이 처음에는 왜 이슈인지에 대해서는 아직 확신 할 수 없지만 솔루션은 기본적으로 해결하기 위해 끝내 었습니다. 'viewDidAppear'에 플래그를 설정하고'viewDidDisappear'에서 설정을 해제하고 텍스트 필드가 활성화되어야하는지 여부를 결정하는 데 사용했습니다. – SeanT

관련 문제