diff --git a/packages/flet/lib/src/controls/search_anchor.dart b/packages/flet/lib/src/controls/search_anchor.dart index 649fd739f..75b6f0f33 100644 --- a/packages/flet/lib/src/controls/search_anchor.dart +++ b/packages/flet/lib/src/controls/search_anchor.dart @@ -39,6 +39,7 @@ class _SearchAnchorControlState extends State { bool _focused = false; late final FocusNode _focusNode; String? _lastFocusValue; + String? _lastBlurValue; @override void initState() { @@ -109,10 +110,15 @@ class _SearchAnchorControlState extends State { widget.control.attrString("keyboardType"), TextInputType.text)!; var focusValue = widget.control.attrString("focus"); + var blurValue = widget.control.attrString("blur"); if (focusValue != null && focusValue != _lastFocusValue) { _lastFocusValue = focusValue; _focusNode.requestFocus(); } + if (blurValue != null && blurValue != _lastBlurValue) { + _lastBlurValue = blurValue; + _focusNode.unfocus(); + } var method = widget.control.attrString("method"); diff --git a/sdk/python/packages/flet/src/flet/core/search_bar.py b/sdk/python/packages/flet/src/flet/core/search_bar.py index 3b5d42ec6..4026a0922 100644 --- a/sdk/python/packages/flet/src/flet/core/search_bar.py +++ b/sdk/python/packages/flet/src/flet/core/search_bar.py @@ -233,6 +233,10 @@ def focus(self): self._set_attr_json("focus", str(time.time())) self.update() + def blur(self): + self._set_attr_json("blur", str(time.time())) + self.update() + def open_view(self): m = { "n": "openView",