【发布时间】:2020-10-04 23:30:39
【问题描述】:
我在自定义 NSNumberFormatter 中有一个 NSScanner,用于扫描非整数值,但我希望它跳过“-”(破折号)
- (BOOL)isPartialStringValid:(NSString *)partialString newEditingString:(NSString **)newString errorDescription:(NSString **)error {
if ([partialString length] == 0) {
return YES;
}
NSScanner *scanner = [NSScanner scannerWithString:partialString];
if (!([scanner scanInt:0] && [scanner isAtEnd])) {
return NO;
}
return YES;
}
我以为我必须使用[scanner charactersToBeSkipped],但我不知道它是如何工作的
【问题讨论】:
-
问题到底是什么?
-
如何允许在文本字段中使用破折号?
-
但是为什么呢?是不是因为字符串只有是整数才有效,而整数可以是负数?在那种情况下,可能是 NSScanner 不是最好的方法吗?
-
是的,这就是原因。你建议我做什么而不是使用 NSScanner?
-
您可以为此使用正则表达式。
标签: objective-c cocoa nsnumberformatter nsscanner