C# Monotouch phone UITextField 中的数字格式

C# Monotouch phone number formatting in UITextField

我如何格式化或创建 UITextField(使用 Xamarin/C#)允许 phone 数字输入为“(xxx)xxx-xxxx”

括号和连字符可以是动态的或静态的。对此不是很严格。我可以为 3 部分 phone 创建三个不同的 UITextField,并为“(”、“)”和“-”添加标签;但这看起来不是一个好方法。宁愿做正确也不愿破解它。

有什么建议或想法吗?一定会有更好的办法。我找到了这个: UITextField for Phone Number

但我不明白objective-c。也许有人可以帮助翻译,如果那是解决方案,即我涵盖了正则表达式部分。

取决于您的具体要求:

  1. 您希望在用户键入时对文本进行格式化吗?
  2. 您希望在用户完成输入后对文本进行格式化吗?

要完成上述任一场景,您需要做的就是订阅相应的事件并执行格式化逻辑。

对于场景 1: 在 UITextField 上订阅 ValueChanged 活动。每次添加或删除角色时都会触发此事件。现在您可以定义代码以在用户输入时格式化 phone 数字

对于场景 2: 在 UITextField 上订阅 EditingDidEndOnExit 活动。一旦编辑完成并且文本字段不再处于焦点状态,就会触发此事件。现在您可以定义代码以在此处 phone 数字设置格式