2010-12-17 3 views
11

テキストフィールド/ビュー/ etcがそれを呼び出すのに関係なく、キーボードを非表示にする一般的な方法はありますか?IPadどのテキストフィールドが開いているかわからないキーボードを外す

理由私は私の視野に多くのテキストフィールドを持っており、キーボードを隠すためにすべてのテキストフィールドにresignFirstResponderする必要はありません。ただ一般を欲しいだけです。

[self resignFirstResponder]です。

アイデア?これを行う最も簡単な方法は、あなたがこのようになりますキーボードを却下したいときのための方法を有することがある事前

答えて

3

ありがとう:私自身のアプリで

-(void)dismissKeyboard { 
    [firstField becomeFirstResponder]; 
    [firstField resignFirstResponder]; 
} 
1

私はより多くを持っていたとき1つのテキストフィールドよりも、それが呼ばれているフィールドに関係なくキーボードを消したいと思っているなら、私はメソッドを書いてそれぞれのすべてを聞かせますresignFirstResponder

私は、プログラマとして、あなたのビューコントローラにいくつのテキストフィールドがあり、どのようにアクセスできるかを明確に理解しておく必要があります。そうしないと、アプリケーションがうまく見えなくなります。 。:-P

19

これは既に回答済みであることがわかりましたが、このように実行された場合は、テキストフィールドを含むビューで次のメソッドを使用できます。

- (BOOL)endEditing:(BOOL)force 

このメソッドは、現在のビューと現在ファーストレスポンダであるテキストフィールドのそのサブビューの階層に見えます。それが見つかると、そのテキストフィールドを最初のレスポンダとして辞任するように要求します。 forceパラメータがYESに設定されていると、テキストフィールドには尋ねられません。辞任を余儀なくされる。 UIView Documentation

[self.view endEditing:YES]; 

我々はビューをクリックしたときには、キーボードを非表示になります。

+2

@ Jumhynよりもはるかに良い答えです –

1

あなたはこれらの質問を確認することができます。要するに

: あなたが選択したいくつかの他の事にbecomeFirstResponderを呼び出すことができます。それは、UIViewControllerまたはUIViewかもしれません。前にも同様の問題がありましたが、どのテキストフィールドが最初のレスポンダであるかを知らずに、自分のView Controllerを呼び出し元に戻すときに、キーボードを消す必要がありました。次に、私が戻ってきたビューコントローラのviewWillAppearで、私は[self becomeFirstResponder]と呼ばれ、プッシュビューのキーボードは消えました。この作られた方のテキストフィールドなので、それはあなたがコードの下の助けを借りてのUITextField/UITextViewへの参照せずにキーボードを消すことができますファーストレスポンダ

5

いる緩いだった:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES]; 

これはせずに、グローバルキーボードを閉じます参照。

希望これはあなたを助けます。

+1

ありがとう、これはすべてのケース(UITableViewControllerを含む)で動作します。 – marcelosalloum

関連する問題