“复制、粘贴和剪切”对话框不适用于Flitter中的iOS
正如您在图片中所看到的,当我试图双击文本字段以显示复制粘贴对话框时,它会在终端上显示此问题“复制、粘贴和剪切”对话框不适用于Flitter中的iOS,ios,flutter,dart,flutter-layout,Ios,Flutter,Dart,Flutter Layout,正如您在图片中所看到的,当我试图双击文本字段以显示复制粘贴对话框时,它会在终端上显示此问题 ' ══════ Exception caught by widgets library ═══════════════════════════════════════════════════════ The getter 'pasteButtonLabel' was called on null. Receiver: null Tried calling: pasteButtonLabel Th
'
══════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The getter 'pasteButtonLabel' was called on null.
Receiver: null
Tried calling: pasteButtonLabel
The relevant error-causing widget was:
MaterialApp file:///Users/home/Desktop/the%20authentic%20home%20final/theauthentichome/lib/main.dart:136:22
════════════════════════════════════════════════════════════════════════════════════════════════════'
请看下面的图片,以便更好地了解这个问题
The main.dart file :
'import 'dart:async';
import 'dart:io';
import 'package:admob_flutter/admob_flutter.dart';
import 'package:flutterstore/config/router.dart' as router;
import 'package:dynamic_theme/dynamic_theme.dart';
import 'package:flutterstore/provider/ps_provider_dependencies.dart';
import 'package:flutterstore/viewobject/common/language.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:provider/single_child_widget.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:flutterstore/config/ps_theme_data.dart';
import 'package:flutterstore/provider/common/ps_theme_provider.dart';
import 'package:flutterstore/repository/ps_theme_repository.dart';
import 'package:flutterstore/utils/utils.dart';
import 'package:easy_localization/easy_localization.dart';
import 'config/ps_colors.dart';
import 'config/ps_config.dart';
import 'db/common/ps_shared_preferences.dart';
Future<void> main() async {
// add this, and it should be the first line in main method
WidgetsFlutterBinding.ensureInitialized();
final FirebaseMessaging _fcm = FirebaseMessaging();
if (Platform.isIOS) {
_fcm.requestNotificationPermissions(const IosNotificationSettings());
}
final SharedPreferences prefs = await SharedPreferences.getInstance();
if (prefs.getString('codeC') == null) {
await prefs.setString('codeC', null);
await prefs.setString('codeL', null);
}
Admob.initialize(Utils.getAdAppId());
//check is apple signin is available
await Utils.checkAppleSignInAvailable();
runApp(EasyLocalization(
path: 'assets/langs',
startLocale: PsConfig.defaultLanguage.toLocale(),
supportedLocales: getSupportedLanguages(),
child: PSApp()));
}
List<Locale> getSupportedLanguages() {
final List<Locale> localeList = <Locale>[];
for (final Language lang in PsConfig.psSupportedLanguageList) {
localeList.add(Locale(lang.languageCode, lang.countryCode));
}
print('Loaded Languages');
return localeList;
}
class PSApp extends StatefulWidget {
@override
_PSAppState createState() => _PSAppState();
}
Future<dynamic> initAds() async {
if (PsConfig.showAdMob && await Utils.checkInternetConnectivity()) {
// FirebaseAdMob.instance.initialize(appId: Utils.getAdAppId());
}
}
class _PSAppState extends State<PSApp> {
Completer<ThemeData> themeDataCompleter;
PsSharedPreferences psSharedPreferences;
@override
void initState() {
super.initState();
}
Future<ThemeData> getSharePerference(
EasyLocalization provider, dynamic data) {
Utils.psPrint('>> get share perference');
if (themeDataCompleter == null) {
Utils.psPrint('init completer');
themeDataCompleter = Completer<ThemeData>();
}
if (psSharedPreferences == null) {
Utils.psPrint('init ps shareperferences');
psSharedPreferences = PsSharedPreferences.instance;
Utils.psPrint('get shared');
psSharedPreferences.futureShared.then((SharedPreferences sh) {
psSharedPreferences.shared = sh;
Utils.psPrint('init theme provider');
final PsThemeProvider psThemeProvider = PsThemeProvider(
repo: PsThemeRepository(psSharedPreferences: psSharedPreferences));
Utils.psPrint('get theme');
final ThemeData themeData = psThemeProvider.getTheme();
themeDataCompleter.complete(themeData);
Utils.psPrint('themedata loading completed');
});
}
return themeDataCompleter.future;
}
List<Locale> getSupportedLanguages() {
final List<Locale> localeList = <Locale>[];
for (final Language lang in PsConfig.psSupportedLanguageList) {
localeList.add(Locale(lang.languageCode, lang.countryCode));
}
print('Loaded Languages');
return localeList;
}
@override
Widget build(BuildContext context) {
// init Color
PsColors.loadColor(context);
return MultiProvider(
providers: <SingleChildWidget>[
...providers,
],
child: DynamicTheme(
defaultBrightness: Brightness.light,
data: (Brightness brightness) {
if (brightness == Brightness.light) {
return themeData(ThemeData.light());
} else {
return themeData(ThemeData.dark());
}
},
themedWidgetBuilder: (BuildContext context, ThemeData theme) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'مفرشي',
theme: theme,
initialRoute: '/',
onGenerateRoute: router.generateRoute,
localizationsDelegates: <LocalizationsDelegate<dynamic>>[
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
EasyLocalization.of(context).delegate,
],
supportedLocales: EasyLocalization.of(context).supportedLocales,
locale: EasyLocalization.of(context).locale,
);
}));
}
}'
main.dart文件:
'导入'dart:async';
导入“dart:io”;
进口“包装:admob_flight/admob_flight.dart”;
导入“package:flotterstore/config/router.dart”作为路由器;
导入“package:dynamic_theme/dynamic_theme.dart”;
导入“package:Store/provider/ps_provider_dependencies.dart”;
导入“package:flotterstore/viewobject/common/language.dart”;
导入“package:firebase_messaging/firebase_messaging.dart”;
进口“包装:颤振/材料.省道”;
导入“包:provider/provider.dart”;
导入“package:flatter_本地化/flatter_本地化.dart”;
导入“package:provider/single_child_widget.dart”;
导入“package:shared_preferences/shared_preferences.dart”;
导入“package:flotterstore/config/ps_theme_data.dart”;
导入“包:flatterstore/provider/common/ps_theme_provider.dart”;
导入“package:flotterstore/repository/ps_theme_repository.dart”;
导入“package:flotterstore/utils/utils.dart”;
导入“package:easy_localization/easy_localization.dart”;
导入'config/ps_colors.dart';
导入'config/ps_config.dart';
导入“db/common/ps_shared_preferences.dart”;
Future main()异步{
//添加这个,它应该是main方法中的第一行
WidgetsFlutterBinding.ensureInitialized();
最终FirebaseMessaging_fcm=FirebaseMessaging();
if(Platform.isIOS){
_fcm.requestNotificationPermissions(const ioNotificationSettings());
}
final SharedReferences prefs=等待SharedReferences.getInstance();
if(prefs.getString('codeC')==null){
wait prefs.setString('codeC',null);
wait prefs.setString('codeL',null);
}
初始化(Utils.getAdAppId());
//检查苹果登录是否可用
wait Utils.checkAppleSignInAvailable();
runApp(易本地化)(
路径:“资产/语言”,
startLocale:PsConfig.defaultLanguage.toLocale(),
supportedLocales:getSupportedLanguages(),
child:PSApp());
}
列出getSupportedLanguages(){
最终列表localeList=[];
for(PsConfig.psSupportedLanguageList中的最终语言lang){
add(Locale(lang.languageCode,lang.countryCode));
}
打印(“加载的语言”);
返回localeList;
}
类PSApp扩展了StatefulWidget{
@凌驾
_PSAppState createState()=>\u PSAppState();
}
Future initAds()异步{
if(PsConfig.showAdMob&&wait Utils.checkInternetConnectivity()){
//FirebaseAdMob.instance.initialize(appId:Utils.getAdAppId());
}
}
类_PSAppState扩展状态{
完成者主题完成者;
PsSharedPreferences PsSharedPreferences;
@凌驾
void initState(){
super.initState();
}
未来getSharePerference(
EasyLocalization提供程序(动态数据){
Utils.psPrint(“>>获取共享性能”);
如果(主题数据完成器==null){
Utils.psPrint('init completer');
主题数据完成器=完成器();
}
如果(psSharedPreferences==null){
Utils.psPrint('init ps shareperferences');
psSharedPreferences=psSharedPreferences.instance;
Utils.psPrint('get shared');
psSharedPreferences.futureShared.then((SharedPreferences sh){
psSharedPreferences.shared=sh;
Utils.psPrint('init主题提供程序');
最终PsThemeProvider PsThemeProvider=PsThemeProvider(
回购:PsThemeRepository(psSharedPreferences:psSharedPreferences));
Utils.psPrint('get theme');
final-ThemeData-ThemeData=psThemeProvider.getTheme();
主题数据完成器。完成(主题数据);
Utils.psPrint(“主题数据加载完成”);
});
}
返回主题为datacompleter.future;
}
列出getSupportedLanguages(){
最终列表localeList=[];
for(PsConfig.psSupportedLanguageList中的最终语言lang){
add(Locale(lang.languageCode,lang.countryCode));
}
打印(“加载的语言”);
返回localeList;
}
@凌驾
小部件构建(构建上下文){
//初始颜色
PsColors.loadColor(上下文);
回程多供应商(
供应商:[
…供应商,
],
孩子:动态血红素(
defaultBrightness:Brightness.light,
数据:(亮度){
如果(亮度==亮度.灯光){
返回主题数据(themeData.light());
}否则{
返回主题数据(themeData.dark());
}
},
主题WidgetBuilder:(构建上下文,主题数据主题){
返回材料PP(
debugShowCheckedModeBanner:false,
标题:“مفشي”,
主题:主题,,
initialRoute:“/”,
onGenerateRoute:router.generateRoute,
本地化授权:[
GlobalMaterialAllocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
(上下文)委托的易本地化,
],
supportedLocales:EasyLocalization.of(context).supportedLocales,
locale:EasyLocalization.of(context.locale),
);
}));
}
}'
参考图片:
快速的谷歌搜索表明,这可能与可用的本地化连接。您是否尝试过在
MaterialApp
中添加DefaultCupertinoLocalization.delegate
到您的localizationsDelegates
?
(这只是一个猜测,很可能是没有用……快速的谷歌搜索表明,这可能与可用的本地化有关。您是否尝试在
MaterialApp中添加defaultcupertinologizations.delegate
到您的localizationsDelegates