import 'package:flutter/cupertino.dart'; import 'package:go_router/go_router.dart'; void showEditDescDialog( BuildContext context, { String value = "", required void Function(String) onConfirm, }) { final controller = TextEditingController(text: value); final focusNode = FocusNode(); showCupertinoDialog( context: context, builder: (_) { // 确保弹窗显示后再获取焦点 WidgetsBinding.instance.addPostFrameCallback((_) { focusNode.requestFocus(); }); return CupertinoAlertDialog( title: Text("Edit summary"), content: Padding( padding: EdgeInsets.only(top: 15), child: Container( constraints: BoxConstraints(minHeight: 40, maxHeight: 80), child: CupertinoTextField( controller: controller, maxLines: null, expands: true, keyboardType: TextInputType.multiline, ), ), ), actions: [ CupertinoDialogAction( onPressed: () { context.pop(); }, child: Text('Cancel'), ), CupertinoDialogAction( isDefaultAction: true, onPressed: () { if (controller.text.trim().isNotEmpty) { context.pop(); onConfirm(controller.text); } }, child: Text('Save'), ), ], ); }, ); }