获得焦点时选择条目中的所有文本

OXO*_*OXO 5 maui

在我的 .NET MAUI 应用程序中,我想在条目聚焦时选择整个文本,以便可以更快地进行输入,而无需删除初始输入。

因此,我添加了以下代码:

XAML

<Entry Text="{Binding Min, Mode=TwoWay}" Focused="Entry_Focused" />
Run Code Online (Sandbox Code Playgroud)

代码隐藏

private void Entry_Focused(object sender, FocusEventArgs e)
{
    var entry = sender as Entry;

    entry.CursorPosition = 0;
    entry.SelectionLength = entry.Text == null ? 0 : entry.Text.Length;
}
Run Code Online (Sandbox Code Playgroud)

在我的Pixel 5 - API 33 (Android 13.0 - API 33)模拟器中,当我用鼠标单击我的 Entry 时,它的行为就像这样。

在此输入图像描述

当我继续使用Tab(用户没有)时,它的行为正确,正如您在此处看到的那样

在此输入图像描述

解决此问题的正确方法是什么,以便当用户单击条目并设置焦点时它的行为类似于第二个屏幕截图?

Too*_*eve 4

在 Android\xe2\x80\x99s Focused 事件内时,对光标的更改无法正常工作。无论语言如何,都是如此(本机 Java 应用程序也会发生这种情况)。

\n

解决方法是将更改排队,以便它们在方法返回后发生。这可以通过 Dispatch 来完成:

\n
Dispatcher.Dispatch( () =>\n{\n    // your code here\n});\n
Run Code Online (Sandbox Code Playgroud)\n

在您的情况下,将 Entry_Focused 的所有代码放入 Dispatch 中。

\n