1

我正在構建一個引腳條目視圖控制器,與您在進入設置 - > TouchID時看到的iOS非常相似,它會提示您輸入引腳。如何展示iOS鍵盤以及ViewController的模態表示?

我試圖模仿PIN輸入的viewController的模式呈現沿呈現的iOS鍵盤(同時)的它的行爲。我注意到像Venmo這樣的其他應用程序也能夠實現這一點。

我該如何實現這種行爲?我的pinEntryView是一個textField。我試圖在viewDidAppear中發送becomeFirstResponder消息,並且這似乎工作;不過,它將在viewController模態演示完成後顯示iOS鍵盤。我想讓演示同時發生,讓人感覺iOS鍵盤實際上是ViewController的烘焙/部分。

我曾嘗試在viewWillAppear中發送becomeFirstResponder消息,viewWillLayoutSubviews爲好,但這些都不是穩定的解決方案。有時鍵盤顯示,有時不顯示。無論如何要做到這一點?

回答

0

我通過在viewDidLoad中設置becomeFirstResponder所做的測試,它工作正常。 我有一個按鈕調用模式,而模式有下面的代碼:

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

它沒有意外的行爲。

+0

嘗試測試它幾次,你會看到鍵盤有時顯示,有時不會顯示。你是怎麼測試這個的? – AyBayBay

+0

我希望這可以幫助你。順便說一下,我正在物理設備中測試,而不是在模擬器中測試。 [鏈接](https://dl.dropboxusercontent.com/u/28337816/TestFirstResponder.zip) –

+0

你能夠一如既往地看到鍵盤? – AyBayBay

0

我相信我以前有過這個問題,它有一個非常有趣的解決方案。在打電話給super之前,你想要做的是在viewWillAppear中撥打becomeFirstResponder

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

然後當你調用超的第一個響應者已經被設置,然後iOS的拿起這種狀態,包括鍵盤出現在動畫的外觀交易。

希望這可以幫助你。