NSTextField의 포맷터 출력을 사용하여 NSNumberFormatter를 NSTextfield에 연결하려고합니다 (아래 그림 참조). 나는이 프로그램을 실행할 때 나는 오류를 얻을NSTextfield에 NSNumberFormatter 연결
#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 NSNumberFormatter
을 사용할 때 올바르게 작동하도록 할 수 있습니다. 하지만 코드를 통해이 작업을 수행하여 형식을 더 잘 제어 할 수 있습니다.
그래서 내가하려는 것은 - 하위 클래스 NSNumberFormatter는 XIB의 텍스트 필드에 포맷터를 연결 한 다음 사용자가 숫자가 지정된 텍스트 필드에 숫자를 입력 한 후입니다.
어떤 제안이 도움이 될 것입니다.
IB에서 필드 포맷터의 맞춤 클래스를 변경 했습니까? –
@GradyPlayer FieldFormatter는 NSNumberFormatter의 서브 클래스입니다. IB의 객체 클래스는 FieldFormatter로 설정됩니다. 네가 물어 본거야? – wigging
형식 메서드를 재정의하지 않으면 어떻게 작동하지 않는다고 말할 수 있는지 이해할 수 없습니다 ... 아마도 문제는 코드에서 formatterStyle을 재정의하지만 IB에서는 그렇지 않은 것일 수 있습니다. 그걸 기반으로 다른 키를 deserialze ...하지만 부모 클래스처럼 행동해야하는 객체가 있습니다. –