首页 > 解决方案 > 颤振,如何复制多步输入的子范围

问题描述

从 TextField 复制文本时,在多步输入(组合模式)的情况下,我应该如何复制子范围?

例如下面的代码

import 'package:flutter/material.dart';

class SampleWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: HomeWidget());
  }
}

class HomeWidget extends StatelessWidget {
  TextEditingController _controller1 = TextEditingController();
  FocusNode _focusNode1 = FocusNode();
  TextEditingController _controller2 = TextEditingController();
  FocusNode _focusNode2 = FocusNode();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Center(
          child: Column(
            children: [
              TextField(
                focusNode: _focusNode1,
                controller: _controller1,
              ),
              TextField(
                focusNode: _focusNode2,
                controller: _controller2,
              ),
              RaisedButton(
                  child: Text("copy text"),
                  onPressed: () {
                    if(_focusNode1.hasFocus) {
                      _controller2.text = _controller1.text;
                      _focusNode1.unfocus();
                      _focusNode2.requestFocus();
                    } else {
                      _controller1.text = _controller2.text;
                      _focusNode2.unfocus();
                      _focusNode1.requestFocus();
                    }
                  }),
            ],
          ),
        ),
      ),
    );
  }
}

void main() {
  runApp(SampleWidget());
}

可以在 TextField 中复制英文“abcd”文本。

在此处输入图像描述

但在多步输入(组合模式)的情况下,无法复制文本。

韩语是一种组合语言,这意味着“가”、“구”和“거”等字符通常可以写成“ㄱ”+“ㅏ”、“ㄱ”+“ㅜ”和“ㄱ”+“ㅓ” .

但是,代码移动到 'ㄱ' 之后的下一个字符范围。(我希望代码保留到 'ㄱ' 与 'ㅏ' 结合)

在此处输入图像描述

我怎么解决这个问题?

标签: fluttercopytextfield

解决方案


推荐阅读