0

我正在尝试使用 NSTextField 的格式化程序出口将 NSNumberFormatter 连接到 NSTextfield(如下图所示)。我的格式化程序子类如下:

#import <Foundation/Foundation.h>

@interface FieldFormatter : NSNumberFormatter

@end

#import "FieldFormatter.h"

@implementation FieldFormatter

- (NSNumberFormatterBehavior)formatterBehavior {
    return NSNumberFormatterBehavior10_4;
}

- (NSNumberFormatterStyle)numberStyle {
    return NSNumberFormatterDecimalStyle;
}

@end

在此处输入图像描述

运行程序时我没有收到任何错误,但格式化程序无法正常工作。当我在文本字段中输入小数时,它会向上取整,即 13.8 变为 14。我根本无法在文本字段中输入小数。

NSTextField with NSNumberFormatter在使用Interface Builder时,我可以让它正常工作。但我更愿意通过代码来做到这一点,这样我就可以更好地控制格式。

所以我想要做的是 - 子类 NSNumberFormatter,将格式化程序连接到 XIB 中的文本字段,然后在用户将数字输入到文本字段后,该数字被格式化。

任何的意见都将会有帮助。

4

1 回答 1

2

Alloc 初始化您的格式化程序,然后在您的文本字段上调用 ​​setFormatter:。

FieldFormatter *formatter = [[FieldFormatter alloc] init];
[myTextField setFormatter:formatter];

而且,如果您在 IB 中没有对它做任何事情,您应该摆脱该连接和代表您的 FieldFormatter 实例的蓝色立方体。

于 2012-10-29T03:03:08.983 回答