1

アプリにいくつかのテキスト ビューがあります。1 つを除くすべてが UITextField であり、もう 1 つは UITextView であり、他のオブジェクトの真ん中にあります。これは、このセクションでは、ユーザーが入力して入力内容をすべて表示するためにより多くのスペースが必要であるためです。ユーザーがキーボードで次を押すと、次のコードを使用して次のフィールドに移動するように設定しました。

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if (textField == firstName) {
        [firstName resignFirstResponder];
        [lastName becomeFirstResponder];
    } else if (textField == lastName) {
        [lastName resignFirstResponder];
        [theRequest becomeFirstResponder];
    }
    else if (textField == theRequest) {
        [theRequest resignFirstResponder];
        [theDetails becomeFirstResponder];
    }
    else if (textField == theDetails) {
        [theDetails resignFirstResponder];
        [textdate becomeFirstResponder];
    }
    else if (textField == textdate) {
        [textdate resignFirstResponder];
        [location becomeFirstResponder];
    }
    else if (textField == location) {
        [location resignFirstResponder];

    }
    return YES;
}

UITextView に到達するまで、すべてがうまくいきます。そこで次にクリックすると、カーソルが一行下に押し出されます。次のフィールドに移動するように応答するにはどうすればよいですか?

また、場所で次へをクリックすると、名前に戻ります。キーボードを閉じるだけに設定するにはどうすればよいですか?

4

3 に答える 3

0

これは古い投稿であることは知っていますが、なんとか答えを得ることができたので、共有したいと思いました。

- (BOOL) textFieldShouldReturn:(UITextField *)textField 
{
    [textView performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.1];

    return YES;
}

afterDelay:0.1を使用すると、シミュレーターを使用して使用できるデバイスに違いが生じると言われましたafterDelay:0.0

于 2016-01-20T16:12:38.577 に答える
0

次の 2 つの方法を試すことができます。

1) 使用機能

-(BOOL)textViewShouldReturn:(UITextView *)textView

必要な行動を実現する。

2)これを読んでください:

returnキーでUITextViewのキーボードを閉じる方法は?

それらのソリューションをニーズに合わせて調整します。

于 2014-05-08T19:20:45.193 に答える