我不想允许在显示名称字段中输入空格。
例如,如果用户输入这样的名称"命名"或"命名"或"姓名",最终结果应为"姓名"消除空间。
我试过这种方法,但修剪似乎不起作用。
NameText.EditingDidEnd += delegate {
char[] arr = new char[] {' '};
NameText.Text.TrimStart(arr);
ScrollPageForKeyboard(false);
};
答案 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;
};