我正在尝试使用我在OS X应用程序中覆盖NSFormatter的类。我试过一本书的例子,但是它来自旧版的XCode。我的问题是我不知道如何设置我的NSTextfield的格式化程序。我不确定现在Xcoded有内置IB还是我做错其他的事情。看起来您曾经能够控制单击您的文本字段,它会显示一个菜单。在菜单的出口部分,它说我想看到“格式化程序”选择。这没有在菜单的我的插座部分列出。
我认为它没有区别,但我的NSTextfield是在NSScrollview中。我对Cocoa仍然很陌生(来自C#和C ++背景)。
答案 0 :(得分:1)
您可以像这样简单地继承 NSNumberFormatter :
.h 中的
@interface NumberFormatterSubclass : NSNumberFormatter {
}
@end
.m 中的
@implementation NumberFormatterSubclass
- (BOOL)isPartialStringValid:(NSString **)partialString
proposedSelectedRange:(NSRangePointer)proposedSelRange
originalString:(NSString *)origString
originalSelectedRange:(NSRange)origSelRange
errorDescription:(NSString **)error
{
if ([*partialString length] > 4) {
return NO;
}
return YES;
}
不要忘记在 NSTextField 上添加 NSNumberFormatter ,并将 NSNumberFormatter 类更改为身份检查器中创建的子类