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 NSNumberFormatterInterface Builder でを使用すると、これを正しく機能させることができます。ただし、形式をより細かく制御できるように、コードを使用してこれを行うことをお勧めします。

だから私がやろうとしているのはこれです - NSNumberFormatterをサブクラス化し、フォーマッタをXIBのテキストフィールドに接続し、ユーザーが数値をテキストフィールドに入力した後、その数値がフォーマットされます。

どんな提案も役に立ちます。

4

1 に答える 1

2

フォーマッタを初期化してから、テキスト フィールドで setFormatter: を呼び出すだけです。

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

また、IB で何もしていない場合は、その接続と、FieldFormatter インスタンスを表す青い立方体を取り除く必要があります。

于 2012-10-29T03:03:08.983 に答える