2011-11-15 9 views
1

私はいくつかのビューの上にUITextFieldオブジェクトを持っています。私がそれらを押すと、私はキーボードとUIKeyboardWillShowNotificationイベントを取得します。テキストフィールドの1つが最初のレスポンダである間に新しいビューコントローラをスタックにプッシュすると、キーボードは(期待通りに)アニメーション化されます。しかし、戻るボタンを押すと、テキストフィールドが最初の応答者になりますが、キーボードは元に戻りません。同じビューで別のテキストフィールドをクリックすると、もう一度キーボードが表示されません。私がビューに再び入ったときにキーボードが上がっていないのであれば問題ありませんが、別のテキストフィールドをクリックしたときに何がうまくいかないのか分かりません。なぜこのようなことが起こり、どのように修正できますか?ビューがナビゲーションスタックからポップされたときにキーボードが表示されないのはなぜですか?

私は画面を離れる前に最初の応答者を辞任すると、すべて正常に動作します。

+1

最初の画面を離れる前に最初のレスポンダーを辞める...... – Daniel

+0

特定のケースを解決するためにそれをやり遂げることができますが、私は説明と一般的な解決策が大好きです。 –

答えて

1

私はそれを理解しました。私が理解した限りでは、これはAppleのコードのバグです。私はfirstResponderという名前のUITextFieldの親ビューの1つにプロパティを持っています。この名前を使用すべきではない理由は何もないようですが、明らかにAppleはコードのどこかでそれを使用しています。この名前のプロパティを作成すると、フレームワークの最初のレスポンダコードが真剣にバグアウト。解決策は私の財産の名前を何か他のものにすることです。

first responderを辞める理由は、firstResponderプロパティをnilに設定していたということだけでした。

0

最初のレスポンダー以外のメカニズムによってキーボードが隠されていると思うので、システムはキーボードをすでに表示していると思っているので、再度表示する必要はありません。

再現可能な実装の簡単なサンプルアプリケーションを入手できる場合は、Appleに報告する必要があるiOSのバグのように思えます。

関連する問題