質問

私は、通知を設定すると見つけることができるすべての例は次のようになります

[NC addObserver:自己セレクタ:@selector(keyboardWillShow :)名:UIKeyboardWillShowNotificationオブジェクト:ニル];

オブジェクトは常にnilに設定されている場所。オブジェクトは、ドキュメントにthusly定義さnotificationSender、ある

その通知観察者が受信したい」オブジェクトは、つまり、この送信者によって送られた通知のみが観測者に配信されているゼロ、通知センターはに配信するかどうかを決定するために、通知の送信者を使用しない場合。オブザーバー。 "

私は、唯一の特定のテキストビューのためにキーボード通知を受信したいので、私はそれをaddObserverお伝えしたいと思いますが、私は、オブジェクトのためにそれを与えることを知っていません。私は、私が興味のテキストビューにバインドされていますアウトレット変数を試してみましたが、それはちょうど私は全くの通知を取得していないが生じます。

任意の提案ですか?

役に立ちましたか?

解決

UIKeyboardWillShowNotificationはあなたの窓のインスタンスから来て、そしてすべての意図や目的のための「システム」の通知です。キーボード表示または表示されていないか、それは本当に特定のコントロールに関連付けられているものではありません。

ユーザーが特定のテキストフィールドに入ったときに、あなたが何かをしたい場合、あなたはおそらく代わりに、テキストフィールドのデリゲートでそれを制御する必要があります。

他のヒント

この場合、あなたはUIKeyboardWillShowNotificationのためのドキュメンタリーが言うように、「通知オブジェクトがnilである。」、唯一の特定のテキストビューのための通知を取得することはできません。

あなたは、特定のテキストビューのisFirstResponder場合は、あなたのkeyboardWillShowのIMPLにチェックする必要があります。

私は2つの競合するニーズを持っていた - 私はそのようにのみ利用可能であるように思われ、私はキーボードの高さを取得するために必要なので、キーボード通知を使用する必要がありましたが、私も、私も意味しており、中にあったテキストビューを知るために必要なtextViewDidBeginEditingデリゲートを使用。後ずっと私は最終的にその下のテキストビューはほとんどないです(私はビューを上にスクロールする必要が通知方法でキーボードの高さを取得し、その後、デリゲートメソッドで使用するのに利用可能であったインスタンス変数、それを保存するに頼っいじり彼らは入力を開始するとき、彼らのキーボードの下に隠れています)。少し無粋が、それは動作します。

のポインタをありがとう!

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