-
Notifications
You must be signed in to change notification settings - Fork 6k
iOS UITextInput autocorrection prompt #13959
iOS UITextInput autocorrection prompt #13959
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
@@ -0,0 +1,32 @@ | |||
// Copyright 2013 The Flutter Authors. All rights reserved. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should update the year to 2019.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2013 is the correct/approved year to use for all copyright dates in the engine. This has the effect of minimising our LICENSES text.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whoops I have messed this up all over the place 😊 Thanks for the correction! I'll move these back to 2013 when I see them.
) This PR disables the "auto-correction highlight" feature in iOS 17. This feature was introduced in flutter/flutter#45354 and #13959 (CC: @LongCatIsLooong who was the original author) I have created [a new issue](flutter/flutter#131622) to find other approaches to re-enable this feature. **Note that "auto-correction" itself still works, it's only the "highlight" part is disabled:** - iOS 16 with highlight: https://github.com/flutter/engine/assets/41930132/2fe7bbf6-f2db-4212-a020-e420ad8dd5e6 - iOS 17 without highlight: https://github.com/flutter/engine/assets/41930132/34f34743-6bef-4e93-80d2-d04c92ba59bf ## Why disable this feature? The original PR uses `UITextInput::firstRectForRange` API for auto-correction, since Apple does not provide any other API when auto-correction should show up, so the original PR used this API as a workaround. In iOS 17, Apple changed a few `UITextInput` behaviors: - UIKit does not query `UITextInput::firstRectForRange` for text range of the auto-corrected word any more. - But instead, it repeatedly queries every single character of the current word (after entering or deleting a character), regardless whether the word should be auto-corrected or not. I have tried all other `UITextInput` APIs that takes a text range, and none are suitable for auto-correction feature. As a result, I have to disable this feature for iOS 17 for now. *List which issues are fixed by this PR. You must list at least one issue.* Fixes flutter/flutter#128406 *If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].* [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
…tter#44176) This PR disables the "auto-correction highlight" feature in iOS 17. This feature was introduced in flutter/flutter#45354 and flutter#13959 (CC: @LongCatIsLooong who was the original author) I have created [a new issue](flutter/flutter#131622) to find other approaches to re-enable this feature. **Note that "auto-correction" itself still works, it's only the "highlight" part is disabled:** - iOS 16 with highlight: https://github.com/flutter/engine/assets/41930132/2fe7bbf6-f2db-4212-a020-e420ad8dd5e6 - iOS 17 without highlight: https://github.com/flutter/engine/assets/41930132/34f34743-6bef-4e93-80d2-d04c92ba59bf ## Why disable this feature? The original PR uses `UITextInput::firstRectForRange` API for auto-correction, since Apple does not provide any other API when auto-correction should show up, so the original PR used this API as a workaround. In iOS 17, Apple changed a few `UITextInput` behaviors: - UIKit does not query `UITextInput::firstRectForRange` for text range of the auto-corrected word any more. - But instead, it repeatedly queries every single character of the current word (after entering or deleting a character), regardless whether the word should be auto-corrected or not. I have tried all other `UITextInput` APIs that takes a text range, and none are suitable for auto-correction feature. As a result, I have to disable this feature for iOS 17 for now. *List which issues are fixed by this PR. You must list at least one issue.* Fixes flutter/flutter#128406 *If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].* [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
Framework PR: flutter/flutter#45354
Notifies the framework when
- (CGRect)firstRectForRange:(UITextRange*)range
gets called.Moved
FlutterTextInputView
toFlutterTextInputPlugin.h
so it can be referenced in my xctest.