0

我正在尝试使用一个在 OS X 应用程序中覆盖 NSFormatter 的类。我尝试了书中的一个例子,但它来自旧版本的 XCode。我的问题是我不知道如何设置我的 NSTextfield 的格式化程序。我不确定现在 Xcoded 内置了 IB 是否有所改变,或者我做错了什么。看起来您曾经能够控制单击您的文本字段,它会弹出一个菜单。在菜单的出口部分,它说我想看到一个“格式化程序”选择。那没有在菜单的我的出口部分列出。

我不认为这有什么不同,但我的 NSTextfield 在 NSScrollview 中。我对 Cocoa 还是很陌生(来自 C# 和 C++ 背景)。

4

1 回答 1

1

您可以像这样简单地将 NSNumberFormatter子类化:

.h

@interface NumberFormatterSubclass : NSNumberFormatter {

}

@end

_

@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类更改为您在身份检查器中创建的子类。

于 2012-02-20T15:50:21.683 回答