iPadは、どのテキストフィールドが開いたかを知らずにキーボードを却下します
-
11-10-2019 - |
質問
将軍を行う方法はありますか resignFirstResponder
テキストフィールド/ビュー/などに関係なく、キーボードを非表示にするには?
理由は私の見解に多くのテキストフィールドがあり、したくないということです resignFirstResponder
すべてのテキストフィールドがキーボードを非表示にします。将軍が欲しいだけです
[self resignFirstResponder]
.
何か案は?
前もって感謝します
解決
これを行う最も簡単な方法は、次のように見えるキーボードを却下したいときにいつでも方法を持つことです。
-(void)dismissKeyboard {
[firstField becomeFirstResponder];
[firstField resignFirstResponder];
}
他のヒント
私はこれがすでに回答としてマークされていることを知っていますが、私のようにこれに出くわす人のために、テキストフィールドを含むビューで次の方法を使用することができます。
- (BOOL)endEditing:(BOOL)force
この方法では、現在最初の応答者であるテキストフィールドの現在のビューとそのサブビュー階層を調べます。それが見つけた場合、それはそのテキストフィールドに最初の応答者として辞任するように求めます。 Forceパラメーターが「はい」に設定されている場合、テキストフィールドは決して尋ねられません。辞任を余儀なくされています。 uiviewドキュメント
[self.view endEditing:YES];
クリックするとキーボードを非表示にします。
以下のコードの助けを借りて、uitextfield / uitextviewを参照せずにキーボードを却下できます。
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
これにより、参照なしでキーボードがグローバルに却下されます。
これがあなたを助けることを願っています。
これらの質問を確認できます。
要約すると、選択した他のものについて、BeyfirStresponderに電話することができます。それはuiviewcontrollerまたはuiviewである可能性があります。以前にも同様の問題がありました。どのテキストフィールドが最初のレスポンダーであるかを知らずに、ビューコントローラーを発信者に押し戻すときにキーボードを消す必要がありました。それから、私が戻ってきた私のビューコントローラーを見ると、私は[Self BeegnfirStresponder]と呼びました、そして、プッシュされたビューのキーボードはなくなりました。これにより、どのテキストフィールドがゆるいものであったために作られたため、最初の応答者であるため
私が複数のテキストフィールドを持っていて、どのフィールドがそれを呼んだかに関係なく、キーボードを消し去りたいとき、私は自分のアプリで、私はちょうど方法を書いて、それぞれをすべてにさせます resignFirstResponder
.
プログラマーとして、ビューコントローラーにあるテキストフィールドの数とアクセス方法を明確に知る必要があると思います。そうしないと、めちゃくちゃになり、アプリはよく見えません...:P