1

私はあなたがSettings-> TouchIDに行くときに見えるiOSのものと非常によく似ているpinエントリーviewControllerを構築しています。ViewControllerのモーダルプレゼンテーションと一緒にiOSキーボードを表示するには?

私は、iOSキーボードを(同じにして)ピンエントリviewControllerのモーダルプレゼンテーションと一緒に提示するという動作を模倣しようとしています。私はVenmのような他のアプリケーションもこれを実現できることに気づいた。

どうすればこの問題を解決できますか?私の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

私はこれまでにこの問題を抱えていたと信じています。興味深い解決策があります。あなたがしたいことは、をviewWillAppearに電話してからsuperを呼び出すことです。

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

は、その後、あなたはファーストレスポンダがすでに設定されているスーパーを呼び出すときに、その後、iOSのは、この状態をピックアップし、キーボードが出現トランザクションでアニメーションを表示されています。

うまくいけば、これもお手伝いできます。

関連する問題