2011-11-15 5 views
1

보기에 여러 개의 UITextField 개체가 있습니다. 내가 그들을 누르면 키보드와 UIKeyboardWillShowNotification 이벤트를 얻습니다. 텍스트 필드 중 하나가 첫 번째 응답자 인 동안 새보기 컨트롤러를 스택에 밀어 넣으면 키보드가 예상대로 움직이지 않습니다. 그러나 뒤로 버튼을 누르면 텍스트 필드가 첫 번째 응답자가되지만 키보드가 다시 나타나지 않습니다. 동일한보기에서 다른 텍스트 필드를 클릭하면 다시 키보드가 나타나지 않습니다. 내가 다시 보았을 때 키보드가 위로 올라 오지 않았다면 괜찮을 것이지만, 다른 텍스트 필드를 클릭 할 때 무엇이 ​​잘못 될지 확신 할 수 없습니다. 왜 이런 일이 일어나고 어떻게 해결할 수 있습니까?왜 탐색 스택에서보기가 팝업되면 키보드가 표시되지 않습니까?

화면을 떠나기 전에 첫 번째 응답자를 사퇴하면 모든 것이 정상적으로 작동합니다.

+1

그렇다면 첫 번째 화면을 떠나기 전에 첫 번째 응답자를 퇴장 시키십시오 ...... – Daniel

+0

특정 사례를 해결하기 위해 그렇게 할 수는 있지만 설명과 일반적인 해결책을 좋아합니다. –

답변

1

나는 그것을 알아 냈다. 그리고 나의 이해의 가장 좋은 것은 애플의 코드에 버그 다. firstResponder이라는 UITextField의 부모 뷰 중 하나에 속성이 있습니다. 이 이름을 사용해서는 안되는 이유는 없지만 Apple은 이미이 코드를 어딘가에서 사용했으며,이 이름으로 속성을 만들면 프레임 워크의 첫 번째 응답자 코드가 심각하게 발생합니다 도망 치다. 해결 방법은 내 재산을 다른 이름으로 지정하는 것입니다.

첫 번째 응답자를 사퇴시키는 유일한 이유는 firstResponder 속성을 nil로 설정했기 때문입니다.

0

첫 번째 응답자가 사퇴하는 것보다 다른 메커니즘에 의해 키보드가 숨겨져 있다고 생각하기 때문에 시스템은 키보드를 이미 표시하고 있다고 생각하므로 다시 표시 할 필요가 없습니다.

재현 가능한 구현으로 간단한 예제 응용 프로그램을 얻을 수 있다면 iOS의 버그처럼 들리므로 Apple에보고해야합니다.

관련 문제