diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a413d4..1df6240 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.3.0 + +- Use SystemContextMenu for iOS + ## 2.2.1 - Changed to Flutter 3.24.0 and Dart 3.5 or higher diff --git a/lib/src/text_input_dialog/ios_text_input_dialog.dart b/lib/src/text_input_dialog/ios_text_input_dialog.dart index 5e11d86..dff84e9 100644 --- a/lib/src/text_input_dialog/ios_text_input_dialog.dart +++ b/lib/src/text_input_dialog/ios_text_input_dialog.dart @@ -129,6 +129,7 @@ class _IOSTextInputDialogState extends State { final prefixText = field.prefixText; final suffixText = field.suffixText; return CupertinoTextField( + contextMenuBuilder: _contextMenuBuilder, controller: c, autofocus: i == 0, placeholder: field.hintText, @@ -210,3 +211,19 @@ class _IOSTextInputDialogState extends State { return validations.isEmpty; } } + +/// SystemContextMenu対応のcontextMenuBuilder +/// +/// SystemContextMenuがサポートされている場合はそれを利用したネイティブUIで、 +/// それ以外の時は無指定の時と同じ挙動 +Widget _contextMenuBuilder( + BuildContext context, + EditableTextState editableTextState, +) => + SystemContextMenu.isSupported(context) + ? SystemContextMenu.editableText( + editableTextState: editableTextState, + ) + : AdaptiveTextSelectionToolbar.editableText( + editableTextState: editableTextState, + ); diff --git a/pubspec.yaml b/pubspec.yaml index 99dfbac..faded91 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: adaptive_dialog description: Show alert dialog or modal action sheet adaptively according to platform. -version: 2.2.1+2 +version: 2.3.0 repository: https://github.com/mono0926/adaptive_dialog funding: - https://github.com/sponsors/mono0926