数値がテキストフィールドに入力される単純なCocoaアプリケーションを作ろうとしています。数字が1つのテキストフィールドに入力されると、他のテキストフィールドは自動的に別の数字で更新されます(逆も同様です)。私がウィンドウにドラッグしたテキストフィールドは、インターフェイスビルダーからの "Number Formatterでのテキストフィールド"です。テキストフィールドを代理人として設定して、自動的に更新できるようにしました。しかし、フォーマットは機能していないようです。私は10進数を入力することはできません。助けてください!!!ここNumber FormatterでNSTextFieldが十進数入力を許可していません
ヘッダファイル:ここ
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate> {
IBOutlet NSTextField *number1;
IBOutlet NSTextField *number2;
}
@property (assign) IBOutlet NSWindow *window;
@end
実装ファイル:
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize window = _window;
-(void)controlTextDidChange:(NSNotification *) note {
NSTextField *changedField = [note object];
if (changedField == number1) {
float num1 = [number1 floatValue];
[number2 setFloatValue: (num1*2.0)];
}
if (changedField == number2) {
float num2 = [number2 floatValue];
[number1 setFloatValue: (num2/2.0)];
}
}
@end
私はそれほど動的ではないアプローチのために提案した変更を行い、10進数を入力できるようにしました。質問? - テキストフィールドの書式を設定すると、45などの45桁の有効数字が表示されます。 – wigging
これを正しく実装する方法の例を示すことができれば、本当に感謝します。 – wigging
@Gavin: 'NSNumberFormatter'の' setMinimumFractionDigits: 'のようなメソッドを見ることができます(そして、' NSTextField'の 'formatter'メソッドを使ってフォーマッタを使用します)。ダイナミックなアプローチでこれらのメソッドを使用したいと思うかもしれませんが(そして小数点表示のために1つあります)、ユーザーが入力するものを変更すると非常に奇妙な振る舞いをします。彼らはそれがだと思います... – CRD