2017-10-17 3 views
0

내 응용 프로그램에는 사용자가 데이터를 입력하는 UITextFields 및 UITextViews가 많이 있습니다. 사용자가 필드를 탭하면 첫 번째 응답자가되고 키보드가 멋지게 나타납니다. 그런 다음 사용자가 다른 필드를 누르면 (현재 필드를 수정 한 후) 키보드가 사라지고 현재 필드가 첫 번째 응답자가되지 않게됩니다. 그러나 도청 된 필드는 즉시 새로운 첫 번째 응답자가되지 않으며 키보드가 닫힙니다.첫 번째 응답자가되기 위해 요청한 UIView를 얻는 방법은 무엇입니까?

내 응용 프로그램에서 필드가 수정 된 후 모든 데이터를 다시 계산하고 다른 모든 필드의 값을 다시 설정합니다. 이것이 새로 태핑 된 필드가 첫 번째 응답자 요청을 푸는 원인이라고 생각합니다. 재 계산의 영향을받지 않는 일부 필드가 있으며 올바르게 작동합니다 (즉, 즉시 포커스를 받고 키보드가 열린 상태로 유지됩니다). 따라서 값이나 필드의 일부 속성을 변경하면 보류중인 첫 번째 응답자 요청이 재설정되는 것이 확실합니다.

필드가 첫 번째 응답자 대기열에 대기 중인지 여부를 어떻게 확인할 수 있습니까 (있는 경우).

그리고이 큐에서 제거하지 않고 어떻게 변경할 수 있습니까?

+1

"첫 번째 응답자 큐"가 없습니다. 일반적으로 사용자가 필드를 탭하면 키보드가 이미 표시되어 있으면 키보드가 사라지지 않습니다. 그래서 너는 그것을 떠나야 만한다. 왜 그런지 생각해야합니다. – matt

+0

예 ... 둘째, 여기에있는 문제가 정확히 무엇입니까? 아니면 무엇을 성취하려고합니까? – NSAdi

+0

다른 UITextField를 살짝 누르면 현재 필드에 대한 resignFirstResponder()가 내 코드가 아니라 iOS에 의해 호출됩니다 (가능한 한 멀리 말할 수 있음). textFieldDidEndEditing() 메서드에서 다른 필드에 대한 업데이트를하고 있습니다. 그래서 저는 키보드를 닫지 않을 것입니다 (최소한 직접적으로는). – zkon

답변

0

좋아, 문제가 발생했습니다. 내 코드는 .isEnabled를 false로 설정 한 다음 다시 true로 설정했습니다. 이것이 첫 번째 응답자 체인에서 필드를 삭제하는 원인이었습니다. 내 코드는보기 및 편집을 위해 동일한 경로를 공유했으며 처음에는 필드를 사용 안 함으로 설정했으며 편집 모드에 있던 경우 활성화 된 것으로 설정했습니다. 초기 담요를 사용하지 않고이 기능을 활성화로 설정하면이 문제가 해결되었습니다.

그렇다면 .isEnabled 스위치를 가볍게 치면 응답기 체인에서 필드가 제거됩니다.

관련 문제