iPadは、どのテキストフィールドが開いたかを知らずにキーボードを却下します

StackOverflow https://stackoverflow.com/questions/4467130

質問

将軍を行う方法はありますか 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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top