3

キーパードの「次へ」ボタンをクリックしてカーソルをTextFieldからTextViewに移動すると、1つの問題があります

最初は、すべて問題ありません。しかし、2番目では、カーソルがtextViewの2番目の行にジャンプし、TextFieldから[次へ]をクリックするたびに、TextViewのカーソルがさらに1行下がります。

4

2 に答える 2

8

さて、質問は興味深いもののようです。ほとんどの場合、カーソル ジャンプは、あるTextFieldから別のTextFieldへのジャンプです。ここでは、編集をあるTextFieldから別のTextViewにジャンプする必要があるため、次の方法を試すことができます。

最初に、textView と TextField のアウトレットを作成しますviewcontroller.h

@property (strong, nonatomic) IBOutlet UITextView *textView;
@property (strong, nonatomic) IBOutlet UITextField *textField;

そしてこれをviewcontroller.m行います:

 -(BOOL) textFieldShouldReturn:(UITextField *)textField
   {      
        if(textField isFirstResponder)
        {
            [textField resignFirstResponder];
            [textView becomeFirstResponder];
        }
        return YES;
    }

編集: メソッドが期待どおりに機能しない場合、これにより変更が行われます: '

-(BOOL) textFieldShouldReturn:(UITextField *)textField
{
    if(textField isFirstResponder)
    {
        [textField resignFirstResponder];
        [textview performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0];
    }
    return YES;
}

(正直なところ、遅延が 0 のこの performSelector が問題をどのように解決したかはわかりませんが、解決策は OP で機能しました。コメントについては、Luong Anh に感謝します。)

于 2013-05-16T09:22:50.413 に答える
0

[yourtextView becomeFirstResponder]; メソッドに入れるだけですtextFieldShouldReturn

于 2013-05-16T09:39:24.360 に答える