在Xamarin.Forms中限制输入字段的长度和字符

27
如何限制 Xamarin.Forms 中 Entry 控件中输入的长度和字符?需要创建自定义控件吗?是否可以派生自 Entry(或其他控件),以便可以应用必要的平台特定的输入限制。
例如,数值字段应该限制最多只能输入三个数字字符。
将 Entry 控件的 Keyboard 属性设置为 Keyboard.Numeric 仅适用于 iOS 平台。它不会限制实际文本输入 - 即我仍然可以输入非数字字符。也没有看到限制输入长度的方法。
13个回答

0
public class AppEntry : Entry
{
    public AppEntry()
    {
        TextChanged += _EnforceMaxLength;
    }

    public int? MaxLength { get; set; }

    private void _EnforceMaxLength(object sender, TextChangedEventArgs args)
    {
        if (!MaxLength.HasValue) return;

        var e = sender as Entry;
        if (e == null)
            return;

        var val = e.Text;

        if (!(val.Length > MaxLength)) return;

        val = val.Remove(val.Length - 1);
        e.Text = val;
    }
}

用法:

var element = new AppEntry
{
    HorizontalOptions = LayoutOptions.FillAndExpand,
    ...
    MaxLength = 123,
};

0

0
最好的实现方法是使用行为,它将通过忽略达到最大长度后的任何输入来限制您的输入中输入的字符数。本文介绍了如何实现此操作,以及如何添加一个计数器,该计数器将向用户显示他们还可以输入多少个字符。该计数器会随着用户输入文本而实时更新。请查看此文章以获取更多详细信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接