xamarin - 完成后如何禁用Syncfusion的自动完成移动到下一个条目?
问题描述
我Autocomplete
以与表单无关的方式在 Xamarin.Forms 中使用 Syncfusion 的条目。因此,我不希望它进入Entry
UI 中的下一个对象。但是,无论我尝试做什么,完成输入后,它都会跳转到下一个Entry
.
我尝试将两个Entry
s设置IsTabStop
为False
,并将第二个设置TabIndex
为更小。没有任何效果,我发现唯一有效的方法是禁用第二个Entry
,而另一个则专注。
XAML:
<ScrollView ...>
// ....
<StackLayout>
// ....
<autocomp:SfAutoComplete x:Name="TagsAutoComplete"
WidthRequest="100"
NoResultsFoundText="New Tag..."
DisplayMemberPath="Name"
Keyboard="Chat"
IsTabStop="False"
IsVisible="False"
Completed="AddTagAutoComplete_Completed" />
// ....
</StackLayout>
// ....
<Frame>
<Grid>
// ....
<Entry FontSize="18" TextColor="Black"
WidthRequest="150" VerticalOptions="Center"
Unfocused="EquValueEntry_Unfocused"
TabIndex="-1" IsTabStop="False" />
// ....
</Grid>
</Frame>
// ....
</ScrollView>
我的解决方法使用 的Focused
和Unfocused
方法Autocomplete
,它们只是将IsEnabled
第二个的属性分别设置Entry
为False
和True
。有没有人有更好、更优雅的解决方案?
解决方案
我们想告诉您,您可以通过返回类型和 IME 选项停止下一个条目焦点。
超轻量级:
将 IsTabStop 设置为 false 会禁用下一个 Entry 焦点。
安卓:
通过在自动完成中更改 EditText 的输入法选项(使用 ImeOptions 属性)
protected override void OnElementChanged(ElementChangedEventArgs<SfAutoComplete> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.GetAutoEditText().ImeOptions = Android.Views.InputMethods.ImeAction.Done;
Control.GetAutoEditText().SetImeActionLabel("Send", Android.Views.InputMethods.ImeAction.Done);
}
IOS:
通过在自动完成中更改 UITextField 的返回类型属性(使用 ReturnKeyType 属性)
protected override void OnElementChanged(ElementChangedEventArgs<SfAutoComplete> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.TextField.ReturnKeyType = UIReturnKeyType.Done;
}
}
我们准备了一个样本供您参考,请从以下链接获取。
有关更多信息,请参阅链接: https ://www.syncfusion.com/kb/10690/how-to-change-return-button-type-in-sfautocomplete
推荐阅读
- mongodb - MongoDB GridFS 巨大的 wt 文件
- reactjs - 反应钩子。如何使输入显示并在 setstate 值后获得输入的焦点?谢谢
- wxpython - 如何使用 wxpython 开发应用程序?
- token - 尝试使用 url 时,https://vrp.api.here.com/v1/problems,api 返回错误 403
- python - python:为XML树中的当前节点生成xPath选择器
- r - R,tidyverse:如何将 spread() 与 group_by() 一起使用
- javascript - jquery将每个单词的第一个字母大写
- android - 为什么图像的imageview被剪切?(在动画期间,imageview 在屏幕之外的一半)
- python - 在张量流中包裹卷积
- c++ - 从 std::string 到 std::vector 的快速转换