1

저는 Settings-> TouchID로 갈 때 볼 수있는 iOS와 매우 유사한 핀 항목 viewController를 작성 중이며 핀을 요구합니다.ViewController의 모달 프레젠테이션과 함께 iOS 키보드를 표시하는 방법은 무엇입니까?

핀 항목 viewController의 모달 프레젠테이션과 함께 iOS 키보드를 표시하는 동작을 모방하려고합니다. 나는 Venmo와 같은 다른 응용 프로그램도 이것을 달성 할 수 있다는 것을 알았다.

이 동작을 어떻게 수행 할 수 있습니까? 내 pinEntryView는 textField입니다. viewDidAppear있는 becomeFirstResponder 메시지를 보내는 시도했다 및이 작동하는 것; 그러나 viewController 모달 프레젠테이션이 끝난 후 iOS 키보드가 표시됩니다. 나는 프리젠 테이션이 동시에 발생하여 iOS 키보드가 실제로 ViewController의 일부로 구워 졌음을 알리고 싶습니다.

viewWillAppear, viewWillLayoutSubviews에서도 becomeFirstResponder 메시지를 보내려고했지만 안정적인 솔루션이 아닙니다. 때로는 키보드가 표시되고 그렇지 않은 경우도 있습니다. 이 작업을 수행 할 여지가 있습니까?

답변

0

viewDidLoad에서 becomeFirstResponder를 설정하여 테스트를 수행했는데 정상적으로 작동합니다. 내가 모달를 호출 한 버튼이, 그 모달 다음 코드가 :

override func viewDidLoad() { 
 
     super.viewDidLoad() 
 
     self.textField.becomeFirstResponder() 
 
}

그것은 어떤 예기치 않은 동작이 없습니다.

+0

키보드를 몇 번 시험 해보면 때때로 키보드가 나타나거나 때로는 나타나지 않는 경우가 있습니다. 어떻게 테스트 했습니까? – AyBayBay

+0

도움이 되었기를 바랍니다. 그건 그렇고, 나는 시뮬레이터가 아닌 실제 장치에서 테스트하고있다. [link] (https://dl.dropboxusercontent.com/u/28337816/TestFirstResponder.zip) –

+0

키보드를 계속해서 볼 수 있습니까? – AyBayBay

0

나는이 문제가 전에도 있었지만 꽤 흥미로운 해결책이 있다고 생각한다. 당신이하고 싶은 것은 becomeFirstResponderviewWillAppear에 전화하기 전에 super를 부르십시오.

override func viewWillAppear(animated: Bool) { 
    textField.becomeFirstResponder() 
    super.viewWillAppear(animated) 
} 

그런 다음 첫 번째 응답자가 이미 설정되어있는 슈퍼를 호출 할 때, 다음 아이폰 OS는이 상태를 집어 들고 키보드 모양 거래에 애니메이션을 표시 포함되어 있습니다.

잘하면이 또한 당신을 도울 수 있습니다.