如何禁用ios xamarin中文本字段中的空格字符

时间:2017-02-03 19:26:35

标签: c# ios xamarin

我不想允许在显示名称字段中输入空格。

例如,如果用户输入这样的名称"命名"或"命名"或"姓名",最终结果应为"姓名"消除空间。

我试过这种方法,但修剪似乎不起作用。

NameText.EditingDidEnd += delegate {
            char[] arr = new char[] {' '};
            NameText.Text.TrimStart(arr);
            ScrollPageForKeyboard(false);
        };

3 个答案:

答案 0 :(得分:2)

如果您只想删除前导和尾随空格("名称"或"名称"),请使用:

DisplayNameText.Text = DisplayNameText.Text.Trim() 

根据评论中的建议。如果你想删除所有空格(" John Smith" =" JohnSmith"),那么使用

DisplayNameText.Text = DisplayNameText.Text.Replace(" ", "") 

删除所有空格。

答案 1 :(得分:1)

使用String.Trim()方法应该可以很好地在这里工作:

NameText.EditingDidEnd += delegate
{
    var trimmedName = DisplayNameText.Text.Trim();
    ScrollPageForKeyboard(false);
};

您还可以使用Regex完全替换所有空格:

NameText.EditingDidEnd += delegate
{
    var trimmedName = Regex.Replace(DisplayNameText.Text, @"\s+", "");
    ScrollPageForKeyboard(false);
};

答案 2 :(得分:1)

我建议阻止用户实际输入空格,而不是 他们都准备好了。

添加ShouldChangeCharacters处理程序并检查它们是否输入NSCharacterSet.WhitespaceAndNewlines

定义的空白字符集中的任何字符
NameText.ShouldChangeCharacters += (UITextField textField, NSRange range, string replacementString) =>
{
    foreach (var aChar in replacementString)
    {
        if (NSCharacterSet.WhitespaceAndNewlines.Contains(aChar))
            return false;
    }
    return true;
};