UITextField 中的 C# Monotouch 电话号码格式

Posted

技术标签:

【中文标题】UITextField 中的 C# Monotouch 电话号码格式【英文标题】:C# Monotouch phone number formatting in UITextField 【发布时间】:2015-09-11 13:40:00 【问题描述】:

我如何格式化或创建允许电话号码输入为“(xxx)xxx-xxxx”的 UITextField(使用 Xamarin/C#)

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

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

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

【问题讨论】:

为什么不使用字符串.format 【参考方案1】:

取决于您的具体要求:

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

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

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

对于场景 2: 在UITextField 上订阅EditingDidEndOnExit事件。此事件将在编辑完成且文本字段不再处于焦点时触发。现在您可以在这里定义您的代码来格式化电话号码

【讨论】:

是的,我需要在输入数字时对文本进行格式化 @pnavk 感谢您的回复。

以上是关于UITextField 中的 C# Monotouch 电话号码格式的主要内容,如果未能解决你的问题,请参考以下文章

将 uitextfield 3 空间中的光标向右移动

如何对齐 UITextField 中的文本?

关闭 UITextField 中的键盘

无法将UITextField中的值作为子视图返回到UITableViewCell中的UILabel

在 UITableView 内时 UITextField 中的文本重复

如何检测 UITextField 中的数字长度?