説明
バグレポート
showAutocorrectionPromptRect メソッドが TextInputClient に追加されました
まとめ
新しい方法、void showAutocorrectionPromptRect(int start, int end)
、
に追加されましたTextInputClient
インターフェース。
コンテクスト
iOSの自動修正ハイライトを表示するには、 iOS テキスト入力プラグインには、 ハイライトの開始位置と終了位置の flutter フレームワーク。
変更内容の説明
新しい方法、void showAutocorrectionPromptRect(int start, int end)
、
に追加されましたTextInputClient
インターフェース。 iOS はこのメソッドを呼び出します
新しい潜在的なオートコレクト候補が見つかったとき
現在のユーザー入力、または以前のユーザー入力の範囲内で
候補の変更を強調表示しました。
移行ガイド
アプリケーションが実装またはサブクラス化していない場合TextInputClient
、
移行は必要ありません。アプリケーションが iOS をターゲットにしていない場合は、
または実装したクラスtextInputClient
インターフェイスはそうではありません
オートコレクトをサポートしているため、空の実装を追加するだけで済みます
新しいメソッドの場合:
class CustomTextInputClient implements TextInputClient {
void showAutocorrectionPromptRect(int start, int end) {}
}
それ以外の場合、アプリが iOS をターゲットにしており、iOS での自動修正をサポートしている場合は、
の賢明な実装を追加することをお勧めします。void showAutocorrectionPromptRect(int start, int end)
あなたへTextInputClient
サブクラス。
移行後のコード:
// Assume your `TextInputClient` is a `State` subclass, and it has a variable
// `_currentPromptRectRange` that controls the autocorrection highlight.
class CustomTextInputClient extends State<...> implements TextInputClient {
@override
void updateEditingValue(TextEditingValue value) {
// When the text changes, the highlight needs to be dismissed.
if (value.text != _value.text) {
setState(() {
_currentPromptRectRange = null;
});
}
}
void _handleFocusChanged() {
// When this text input loses focus, the autocorrection highlight needs
// to be dismissed.
if (!_hasFocus) {
setState(() {
_currentPromptRectRange = null;
});
}
}
@override
void showAutocorrectionPromptRect(int start, int end) {
// Updates the range of the highlight, as iOS requested.
// This method isn't called when iOS decides to
// dismiss the highlight.
setState(() {
_currentPromptRectRange = TextRange(start: start, end: end);
});
}
}
タイムライン
安定版リリース: 1.20
参考文献
API ドキュメント:
TextInputClient
関連する問題:
- 問題 12920
関連する PR:
- iOS UITextInput 自動修正プロンプト