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的拿起这种状态,包括键盘出现在动画的外观交易。

希望这可以帮助你。

相关问题