Flutter 中无法粘贴

问题描述 投票:0回答:1

当我使用TextField时,我想复制和粘贴。 但我做不到

当我复制时。然后单击长文本字段 它只是剪切、复制和全选。没有粘贴

Flutter SDK版本:2.5.1 (我知道它很旧。但我无法更新)

我尝试使用 ClipboardData,

我可以复制,ClipboardData有数据。

但是当我粘贴时,文本=“”。

示例: ClipboardData.text =“abc” 粘贴时 ClipboardData.text = ""

为什么,如何做到这一点?

flutter dart textfield copy-paste
1个回答
0
投票

确保您的应用程序具有访问剪贴板的必要权限。您可能需要请求这些权限,尤其是在 iOS 上。

import 'package:flutter/material.dart';
import 'package:clipboard/clipboard.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Clipboard Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              TextField(
                decoration: InputDecoration(
                  hintText: 'Enter text here',
                ),
                onSubmitted: (String value) {
                  Clipboard.setData(ClipboardData(text: value));
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text('Text copied to clipboard')),
                  );
                },
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: () {
                  ClipboardData data = Clipboard.getData();
                  if (data != null && data.text != null) {
                    ScaffoldMessenger.of(context).showSnackBar(
                      SnackBar(content: Text('Pasted text: ${data.text}')),
                    );
                  } else {
                    ScaffoldMessenger.of(context).showSnackBar(
                      SnackBar(content: Text('No text in clipboard')),
                    );
                  }
                },
                child: Text('Paste'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

尝试这个代码,这可能会解决它。

© www.soinside.com 2019 - 2024. All rights reserved.