キーパードの「次へ」ボタンをクリックしてカーソルをTextFieldからTextViewに移動すると、1つの問題があります
最初は、すべて問題ありません。しかし、2番目では、カーソルがtextViewの2番目の行にジャンプし、TextFieldから[次へ]をクリックするたびに、TextViewのカーソルがさらに1行下がります。
キーパードの「次へ」ボタンをクリックしてカーソルをTextFieldからTextViewに移動すると、1つの問題があります
最初は、すべて問題ありません。しかし、2番目では、カーソルがtextViewの2番目の行にジャンプし、TextFieldから[次へ]をクリックするたびに、TextViewのカーソルがさらに1行下がります。
さて、質問は興味深いもののようです。ほとんどの場合、カーソル ジャンプは、ある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 に感謝します。)
[yourtextView becomeFirstResponder];
メソッドに入れるだけですtextFieldShouldReturn
。