自定义NSFormatter仅接受数字

时间:2019-03-13 14:42:07

标签: objective-c

我一直在寻找答案,并尝试了许多在SO上发布的用户示例,但是它们似乎并不能回答我的问题。

在英国,大多数或区号以零开头,我有一个NSTextField并创建了一个客户NSNumberFormatter。我希望我的NSTextField接受以零开头的数字,我不想使用NSNumberFormatter填充选项,因为电话号码的长度可能非常但总是以零开头。

- (BOOL)isPartialStringValid:(NSString*)partialString newEditingString:(NSString**)newString errorDescription:(NSString**)error {


if (partialString.length <= 0 || [partialString rangeOfCharacterFromSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet]].location != NSNotFound) {
    NSLog(@"This is not a positive integer");
    return NO;
}





return YES; } @end

上面的示例可以正常工作,并允许输入任意长度的任何数字,但是在将焦点从NSTextField移开时,总会删除前导零。

示例数字: 01202 01134 01103111345

如何停止删除前导零?

感谢您阅读。

1 个答案:

答案 0 :(得分:0)

您是否尝试过查看图书馆来管理电话号码,例如 libPhoneNumber-iOS已涵盖了大部分内容。如果您只是想与英国电话号码打交道,那也许可以认为是矫kill过正。

我可以在此处复制代码,但是检查框架可能更有效。它已经存在多年了,所以它已经过了很好的测试,在他们的应用程序中使用o2时,我已经使用了很多次。如果您不决定使用它,只需浏览一下代码,即可在其中找到答案。

我看到您正在寻找Mac can do it,但这很努力