Repository: flutter
Issue: [iPad][physical keyboard] Cursor will jump back to 2 characters before the next character appears
Labels: a: text input,platform-ios,framework,f: material design,a: tablet,a: internationalization,has reproducible steps,found in release: 3.0,found in release: 3.1,team-design,triaged-design

## Steps to Reproduce

1. Change flutter to master version
2. use iPad and input text using physical keyboard 
3. Execute flutter run on the code sample
4. Input あ( in keyboard press "a" ) many times 

**Expected results:** 
The cursor should always be at the last position

https://user-images.githubusercontent.com/104349824/171086106-7dd1ecec-c2b7-4179-87c7-6d97f68067e7.mov

**Actual results:** 
Cursor will jump back to 2 characters before the next character appears

https://user-images.githubusercontent.com/104349824/170923214-6551c8bd-7386-4764-a9f4-f90a1c27d11b.mov



<details>
<summary>Code sample</summary>

```

// ignore_for_file: unused_import

import 'package:flutter/material.dart';
import 'package:mangaplotter/lang_localizations.dart';

class SamplePage extends StatefulWidget {

  SamplePage(): super();

  @override
  SamplePageState createState() => SamplePageState();
}

class SamplePageState extends State<SamplePage> with WidgetsBindingObserver {

  final TextEditingController _titleController1 = TextEditingController(text: "");

  @override
  void initState() {
    super.initState();
  }

  @override
  void dispose() {
    _titleController1.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {

    return Scaffold(
      body: Row(
        children: [
          Container(
            margin: EdgeInsets.only(top:10, left:100),
            color: Colors.grey.withAlpha(20),
            width: 500,
            height: 600,
            child: TextFormField(
              controller: _titleController1, 
              maxLines: null,
            )
          ),
      ],)
    );
  }
}
```

</details>

<details>
  <summary>Logs</summary>

```

[✓] Flutter (Channel master, 3.1.0-0.0.pre.1010, on macOS 12.4 21F79 darwin-x64, locale ja-JP)
    • Flutter version 3.1.0-0.0.pre.1010 at /Users/hata/Desktop/develop/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e4f88c7a56 (14 hours ago), 2022-05-30 11:13:11 -0400
    • Engine revision 42db32bc32
    • Dart version 2.18.0 (build 2.18.0-151.0.dev)
    • DevTools version 2.13.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/hata/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 12.4 21F79 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 102.0.5005.61

[✓] HTTP Host Availability
    • All required HTTP hosts are available
```

</details>

reference issue
https://github.com/flutter/flutter/issues/104837