1

画面の下部にあるいくつかの uitextfields にキーボードが重なる ui に uitextfields がほとんどありません。これを処理するために、次のような UIKeyboard 通知を実装しました。

- (void)keyboardWasShown:(NSNotification*)aNotification
- (void)keyboardWillBeHidden:(NSNotification*)aNotification

私のuitextfieldsキーボードreturnKeyTypeはUIReturnKeyNextなので、ユーザーが[次へ]ボタンをタップするたびに、次のテキストフィールドをbecomeFirstResponderとして作成していますが、キーボードから隠されているテキストフィールドがファーストレスポンダーになると、そのフレームは変化せず、外の可視領域境界に更新されますテキストフィールドをタップしたときに初めて通知がトリガーされるため、uikeyboard。becomeFirstResponder イベントごとに、この keyboardWasShown メソッドをトリガーする必要があります。どんな助けでも事前に感謝します。

4

3 に答える 3

1

最初に、これら 2 つのメソッドのコードが正しいことを確認し、ファーストレスポンダを UITextField から別のものに変更すると、キーボード非表示用とキーボード表示用の 2 つの通知センデットがあることを考慮してください。

この通知をどのように処理するか、またテキスト フィールドにアクセスできるかどうかはわかりませんがscrolling、のデリゲート メソッドだけを使用して、いくつかのテキスト フィールドの動作を実装することができました。UITextFields

-(BOOL)textFieldShouldReturn:(UITextField *)textField(キーボードが隠されているため、コンテンツを下に移動します)

-(void)textFieldDidBeginEditing:(UITextField *)textField(キーボードが表示されるため、コンテンツを上に移動します)

このメソッドを使用すると、テキスト フィールドが UIPickerView などの他のビューの inputView として設定されている場合でも、コンテンツの移動を処理できます。

于 2013-05-10T11:36:23.343 に答える
0

ビューのすべての移動を処理するドロップイン置換 Library TPKeyboardAvoidingを使用することをお勧めします。その場合、テキストフィールドはオンスクリーン キーボードのために非表示になります。非常に使いやすく、うまく機能します。

于 2013-05-10T11:26:57.783 に答える