我正在尝试使用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.我无法在文本字段中输入小数。
在Interface Builder中使用NSTextField with NSNumberFormatter
时,我可以正常工作。但我更愿意通过代码来实现这一点,这样我就可以更好地控制格式。
所以我要做的就是这个 - 子类NSNumberFormatter,将格式化程序连接到XIB中的文本字段,然后在用户将数字输入到格式化数字的文本字段后。
任何建议都会有所帮助。
答案 0 :(得分:2)
Alloc初始化你的格式化程序,然后在你的文本字段上调用setFormatter:。
FieldFormatter *formatter = [[FieldFormatter alloc] init];
[myTextField setFormatter:formatter];
而且,如果你在IB中没有做任何事情,你应该摆脱那个连接和代表你的FieldFormatter实例的蓝色立方体。