Skip to content

Empty space on TextField bug when using Chinese Keyboard (iOS) #79025

@LiewJunTung

Description

@LiewJunTung

I encountered this bug when developing the login screen for an app. Where myemail@email.com will changed to myemail@email.co m when using a Chinese keyboard. This issue is not found on vanilla iOS application. This can be solved temporarily via setting the FilteringTextInputFormatter.deny(RegExp('[\\s]')).

Steps to Reproduce

  1. Run flutter create bug.
  2. Update the main.dart to include the follow:
    Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextField(
              keyboardType: TextInputType.text,
            ),
            TextField(
              keyboardType: TextInputType.emailAddress,
            ),
          ],
        )
    
  3. Change to Chinese Keyboard via iOS settings
  4. Type text with Chinese shorthand. Example, p g => 苹果. Before the Chinese character is selected. Click on the other textfield

Expected results:
Created with a sample Swift UI project with 2 TextFields

nativeswift.MP4

Actual results:

flutter.MP4
Logs
[✓] Flutter (Channel stable, 2.0.3, on macOS 11.1 20C69 darwin-arm, locale en-GB)
    • Flutter version 2.0.3 at /Users/liewjuntung/Applications/flutter
    • Framework revision 4d7946a68d (6 days ago), 2021-03-18 17:24:33 -0700
    • Engine revision 3459eb2436
    • Dart version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/liewjuntung/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /Users/liewjuntung/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7185775/Android Studio
      Preview.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✗] Chrome - develop for the web (Cannot find Chrome executable at
    /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Android Studio
    • Android Studio at /Users/liewjuntung/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7185775/Android Studio
      Preview.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.8+10-b944.6842174)

[✓] VS Code (version 1.54.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (1 available)
    • USiPh11P1 (mobile) • 00008030-000579010C78802E • ios • iOS 14.2

! Doctor found issues in 1 category.

Metadata

Metadata

Labels

P2Important issues not at the top of the work lista: internationalizationSupporting other languages or locales. (aka i18n)a: text inputEntering text in a text field or keyboard related problemsengineflutter/engine related. See also e: labels.found in release: 2.0Found to occur in 2.0found in release: 2.1Found to occur in 2.1has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyteam-iosOwned by iOS platform teamtriaged-iosTriaged by iOS platform team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions