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

Posted

技术标签:

【中文标题】如何在键盘中指定允许的字符?【英文标题】:How to specify allowed characters in keyboard? 【发布时间】:2016-10-28 15:38:42 【问题描述】:

我想为 androidios 平台创建一个用于 pin 输入的页面。 Keyboard 属性中的 Numeric 规范符合我的需求。我可以执行this 之类的操作来限制允许的字符和总长度。但是我需要摆脱键盘上的点字符。我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

您可以从软键盘上移除圆点。

使用您链接的解决方案和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 中显示 PIN,而不是 Entry 以避免粘贴。

【讨论】:

我问的是如何从键盘上删除一个字符,而不是如何限制输入。 即使您可以将其从键盘上移除,您也需要再次保护复制/粘贴点。 我已经更新了答案,请告诉我你的想法。请更新您的答案,因为“如何在条目中指定允许的字符?”与“从键盘中删除字符,而不是如何限制输入”不同。

以上是关于如何在键盘中指定允许的字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中动态指定 unicode 字符串?

如何在颤动中禁用 texformfield 输入?

如何在 texbox 中只允许数字,但也允许使用法语键盘输入

Python中如何从键盘中输入字符串,统计字母,数字,符号和空格的个数?

如何防止键盘显示但允许粘贴 UITextView

你如何在GNU Awk 4.2中跳过使用FIELDWIDTHS的字符?