0

テキストフィールドと1つのテキストビューがあるアプリがありますが、キーボードを取得すると下のテキストフィールドが非表示になります。どうすればいいですか。

私が試してみました:

.m:

- (void)textFieldDidBeginEditing:(UITextField *)sender {
    CGSize content = _scrollView.contentSize;
    _scrollView.contentSize = CGSizeMake(content.width, content.height + 200);
    svos = _scrollView.contentOffset;
    CGPoint pt;
    CGRect rc = [sender bounds];
    rc = [sender convertRect:rc toView:_scrollView];
    pt = rc.origin;
    pt.x = 0;
    pt.y -= 200;
    [_scrollView setContentOffset:pt animated:YES];
}

- (IBAction)textFieldShouldReturn:(UITextField *)textField {
    CGSize content = _scrollView.contentSize;
    _scrollView.contentSize = CGSizeMake(content.width, content.height - 200);
    [_scrollView setContentOffset:svos animated:YES];
    [textField resignFirstResponder];
}

.h:

CGPoint svos;

下部のテキスト フィールドはまだ非表示ですが、表示されているフィールドまでスクロールします

4

3 に答える 3

0

iOS のキーボードの邪魔にならないようにテキスト フィールドを移動するためのドロップイン ユニバーサル ソリューション

https://github.com/michaeltyson/TPKeyboardAvoiding

それは私にとって完璧に機能します。

必要なクラス (TPKeyboardAvoidingScrollView または TPKeyboardAvoidingTableView) をプロジェクトにコピーし、インターフェイス ビルダ ファイルで UIScrollView クラスを TPKeyboardAvoidingScrollView に、または UITableView を TPKeyboardAvoidingTableView に変更するだけで、残りはこれらのクラスによって処理されます。

ここに画像の説明を入力

于 2013-07-13T19:47:25.600 に答える