2013-04-17 8 views
5

私は、テキストフィールド、画像、およびいくつかのボタンを持つビューを持っています。 キーボードが表示され、表示が表示されているときに一番上に表示されます。 AND テキストフィールドに何かを入力して送信しても、それが消えないようにします。キーボードを常に上にして表示する

私はをviewdidloadと呼んでいますが、キーボードはデフォルトで表示されますが、ビューが表示された後は少し遅れて表示されます。

また、私のテキストフィールドを送信した後にbecomefirstresponderは役に立ちません。

ご協力いただきありがとうございます。

答えて

4

また、私のテキストフィールドを送信した後は、becomefirstresponderは役に立ちません。

その部分は意味がありません。既定では、endEditing:またはresignFirstResponderを使用しない限り、テキストフィールドはキーボードを閉じません。キーボードが離れる場合はにしてにする必要があります。そうしないとそうではありません。

EDIT:実際には、テキストフィールドからdidEndOnExitコントロールイベントを繋ぎました。ユーザーが[完了]ボタンを押したときにキーボードが消えてしまいます。だからあなたは効果的に自分の顔にぶつかり、誰かがあなたの顔を殴っていると不平を言う。

したがって、解決策は明らかにではありません。フックアップdidEndOnExitコントロールイベント(何でも)です。代わりに、テキストフィールドに代理人を与え、代理人のメッセージを使用してユーザーが何をしているのかを知るだけです。これらのキーボードのどれもがキーボードに関して自動的に動作しないので、キーボードは自動的に解除されません。たとえば、ユーザーが入力中であることを確認するには、textField:shouldChangeCharactersInRange:replacementString:を使用します。ユーザーが[完了]ボタンを押したことを確認するには、textFieldShouldReturn:を使用します。等々。

+0

trueの場合、didEndOnExitはユーザー入力テキストをチェックしているIBActionにリンクされています。しかし、私はそれをdidEndOnExitにリンクしていない場合、ユーザーが入力を完了し、終了ボタンを押したときをどのように知ることができますか? 基本的にこれを達成したい: 1.ウィンドウがロードされるとキーボードが表示される 2.ユーザーがテキストフィールドを入力し、DONEボタンまたはフィールドの隣に置かれた別のボタンを押す。3.私のコードチェックがチェックされる文字列が正しく、何らかの動作をした場合 4.フォーカスがまだテキストフィールドにあり、キーボードがまだ表示されている場合 – user2292949

+0

うん、それはしないでください。あなたは自分自身があなたが不平を言っていることをしています。だからそれをやめ、問題は消え去るでしょう。私の編集された答えを見てください。 – matt

+0

ありがとう、それは私が探している答えのようです。 私がやろうとしたことを完了したら、私は自分のコードと自分のエントリーを更新します。 顔の中で自分自身を打つことについて。私はたぶんIOSの開発とOOPを始めているので、おそらくそれをやっているだろう。 – user2292949

関連する問題