XCode 4中Textfield的自定义NSFormatter

时间:2012-02-20 02:54:56

标签: macos cocoa nsformatter

我正在尝试使用我在OS X应用程序中覆盖NSFormatter的类。我试过一本书的例子,但是它来自旧版的XCode。我的问题是我不知道如何设置我的NSTextfield的格式化程序。我不确定现在Xcoded有内置IB还是我做错其他的事情。看起来您曾经能够控制单击您的文本字段,它会显示一个菜单。在菜单的出口部分,它说我想看到“格式化程序”选择。这没有在菜单的我的插座部分列出。

我认为它没有区别,但我的NSTextfield是在NSScrollview中。我对Cocoa仍然很陌生(来自C#和C ++背景)。

1 个答案:

答案 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 类更改为身份检查器中创建的子类