숫자가 텍스트 필드에 입력되는 간단한 코코아 응용 프로그램을 만들려고합니다. 한 텍스트 필드에 숫자가 입력되면 다른 텍스트 필드는 다른 숫자로 자동 업데이트됩니다 (반대의 경우도 마찬가지 임). 창으로 드래그 한 텍스트 필드는 인터페이스 빌더의 "숫자 포맷터가있는 텍스트 필드"입니다. 텍스트 필드를 대리인으로 설정하여 자동으로 업데이트되도록합니다. 그러나 서식이 제대로 작동하지 않는 것 같습니다. 십진수를 입력 할 수 없습니다. 도와주세요!!! 여기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' 메소드를 사용하여 포맷터를 사용할 수 있습니다.) 동적 접근법을 사용하여 이러한 메소드를 사용하고 싶지만 (그리고 소수점 표시를위한 메소드가 있음) 유혹을받을 수도 있지만, 사용자가 입력 할 때 입력하는 내용을 변경하면 커서가 변경되지 않으므로 매우 이상한 동작을 보일 수 있습니다 그들이 생각하는 곳은 ... – CRD