如何在键盘中指定允许的字符?

时间:2016-06-26 15:35:55

标签: xamarin cross-platform xamarin.forms data-entry

我想为Android和iOS平台创建一个针脚输入页面。 Numeric属性中的Keyboard规范已接近我的需求。我可以执行https://itunes.apple.com/us/app/realm-browser/id1007457278?mt=12之类的操作来限制允许的字符和总长度。但是我需要摆脱键盘上的点字符。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以从软键盘中删除点。

使用您关联的解决方案和Keyboard="Numeric",您可以使用限制条目文字大小的同一TextChanged事件来限制'。'。

示例:

public void OnTextChanged(object sender, TextChangedEventArgs args)
{
    var e = sender as Entry;
    string val = e.Text;

    if (string.IsNullOrEmpty(val))
    {
        return;
    }

    if (MaxLength > 0 && val.Length > MaxLength)
    {
        val = val.Remove(val.Length - 1);
    }

    if (val.Contains("."))
    {
        val.Replace(".", string.Empty);    
    }
    e.Text = val;
}

其他选项会为PIN创建Grid。并在Label而不是Entry中显示个人识别码,以避免粘贴。