这是我如何实现的。我将从头开始解释。因此,新用户可以从头开始。
从这里下载libPhoneNumber-iOS库。在该链接页面的底部,您会找到需要添加到项目中的文件。
您的捆绑包应如下所示:

现在,请按照以下步骤实施。
(1)在需要格式化文本字段的视图控制器中导入文件。
#import "NBPhoneMetaDataGenerator.h"
#import "NBPhoneNumberUtil.h"
#import "NBAsYouTypeFormatter.h"
并在头文件中创建 NBAsYouTypeFormatter类型的实例:
NBAsYouTypeFormatter *asYouTypeFormatter;
(2)在该视图控制器的viewDidLoad方法中,初始化之前获取的对象:
asYouTypeFormatter = [[NBAsYouTypeFormatter alloc] initWithRegionCode:@"IN"];
注意:@"IN" 代表印度。您可以将其设置为任何您想要的。请参阅将包含在 libPhoneNumber-iOS 库中的 plist 文件以查看区域代码的完整列表。
(3)在 UITextField 的委托方法中,动态管理你的 textfield 的文本。
#pragma mark
#pragma mark - Phone Number textfield formatting
# define LIMIT 18 // Or whatever you want
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
// Just allow 18 digits
if(!(([string length] + range.location) > LIMIT))
{
// Something entered by user
if(range.length == 0)
{
[textNumber setText:[self.asYouTypeFormatter inputDigit:string]];
}
// Backspace
else if(range.length == 1)
{
[textNumber setText:[self.asYouTypeFormatter removeLastDigit]];
}
}
return NO;
}
希望它可以帮助别人!