2

날씨 앱의 동작을 에뮬레이션하는 모달 검색보기를 만드는 데 문제가 있습니다. 가상 키보드 슬라이드 인 애니메이션을 숨기는 방법?

  • 모달 뷰가 표시되었을

    , 나는 viewDidAppear에 becomeFirstResponder을 caling하여 UISearchDisplayController.searchBar에 포커스를 : 특히, 두 개의 0.2 초 지연을 날 귀찮게하고 불필요한 소개하는 애니메이션이있다. 그러나 모달 뷰를 밀어 넣었을 때 키보드가 보이지 않으나 모달 뷰 전환이 완료된 후에도 0.2 초가 필요합니다. viewWillAppear 또는 viewDidLoad과 같은 다른 콜백으로 통화를 옮기는 것은 좋지 않습니다. 키보드가 처음에는 나타나지 않습니다.

  • 사용자가 취소 할 때 대리자의 searchDisplayControllerDidEndSearch 메서드가 호출되기 전에 검색 텍스트 필드를 확장하고 버튼을 "제거"하기 전에 다른 애니메이션이 발생합니다. 다시 말하지만,이 애니메이션은 버튼이 눌려 졌을 때 모달 뷰가 바뀌기 때문에 무시됩니다.

  • 또한 동일한보기를 닫고 다시 표시 할 때 전환 후 키보드가 슬라이드 될뿐만 아니라 취소 단추도 같은 기능을 수행합니다 (운 좋게도 동시에).

나는 여기에 설명 유사한 문제를 알고 : Keyboard Animation Issues When Calling becomeFirstResponder within a Modal View Controller. 그러나 검색 막대의 동작이 텍스트 필드의 sligtly differet 인 것처럼 보입니다. 그 저자가 설명한 단계를 재현하여 키보드를 보이게하려면 becomeFirstResponderviewDidLoad으로 호출하십시오.

안부, 크리스

답변

1

은 내가 답을 찾은 것 같아요. 인터페이스 빌더를 사용하여 검색 막대를 추가 할 때 "검색 막대"및 "검색 막대 및 검색 디스플레이 컨트롤러"두 가지 방법으로 수행 할 수 있습니다.

나는 두 번째를 사용하고 있었고 설명했던 것과 똑같은 문제가있었습니다. "viewDidAppear"에서 키보드를 호출 (becomeFirstResponder 사용) 할 수있었습니다. 하지만 검색 창만 추가하면 작동합니다. 이제는 "viewDidLoad"에서 becomeFirstResponder를 호출 할 수 있으며 키보드는 뷰 자체와 함께 나타납니다.

나는 조금 더 많은 작업을 의미하지만 실제로는 그렇지 않습니다. 검색 막대의 위임자로 컨트롤러를 설정해야합니다. 결과에 대한 목록보기를 추가하고 컨트롤러를 대리인 및 데이터 소스로 만들었습니다.

+0

시간을내어 계정을 만들어 주셔서 감사합니다 .--). 2 월 이후 앱을 개조 했으므로 더 이상 문제가되지 않습니다. 네이티브 iOS 앱의 UX를 에뮬레이트하고 싶은 많은 사람들에게 도움이되기를 바랍니다. – Chris