将NSNumberFormatter连接到NSTextfield

时间:2012-10-29 02:15:22

标签: objective-c cocoa nstextfield nsnumberformatter

我正在尝试使用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

enter image description here

运行程序时没有错误,但格式化程序无法正常工作。当我在文本字段中输入一个小数时,它会向上舍入,即13.8变为14.我无法在文本字段中输入小数。

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

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

任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:2)

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

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

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