我想使用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
我沒有得到任何錯誤,當我運行該程序,但格式不工作,因爲它應該。當我在文本字段中輸入一個十進制數時,它將向上取整,即13.8變成14.我無法將小數點全部輸入到文本字段中。
在Interface Builder中使用NSTextField with NSNumberFormatter
時,我可以正確使用它。但我寧願通過代碼來完成此操作,以便對格式有更多的控制。
所以我想要做的是這樣的 - 子類NSNumberFormatter,將格式化程序連接到XIB中的文本字段,然後在用戶將數字輸入到數字格式化的文本字段中。
任何建議將有所幫助。
你是否在IB中更改了Field Formatter的自定義類? –
@GradyPlayer FieldFormatter是NSNumberFormatter的一個子類。 IB中的對象的類被設置爲FieldFormatter。這是你問的嗎? – wigging
我真的不明白你怎麼能說它不應該如它應該如果你沒有重寫任何格式的方法......也許你的問題是重寫代碼中的formatterStyle但不是在IB,它可能會反序列化不同的鍵基於...不過,你真的有一個對象應該像父類一樣 –