NSTextfield에 NSFormatter를 이용해서 정해진 값만 받도록 해보자.
우선 NSFormatter를 상속받아서 CustomFormatter 클래스를 만든다.
@interface CustomFormatter : NSFormatter @end |
이제 CustomFormatter에서 다음 메시지들을 구현한다.
- (NSString *)stringForObjectValue:(id)obj; - (BOOL)getObjectValue:(id *)obj forString:(NSString *)string errorDescription:(SString **)error; - (BOOL)isPartialStringValid:(NSString **)partialStringPtr proposedSelectedRange:(NSRangePointer)proposedSelRangePtr originalString:(NSString *)origString originalSelectedRange:(NSRange)origSelRange errorDescription:(NSString **)error; |
앞에 두개는 다음과 같이 구현한다.
- (NSString *)stringForObjectValue:(id)object { if ([object isKindOfClass:[NSString class]] == NO) { return nil; } return [NSString stringWithString:(NSString *)object]; } - (BOOL)getObjectValue:(id *)object forString:(NSString *)string errorDescription:(NSString **)error { *object = [NSString stringWithString:string]; return YES; } |
이제 실제 값을 체크할 isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:를 구현할 차례다.
그부분은 다음에 설명할 예정이다.
다음 포스트 : 정규식으로 텍스트필드에 영문, 한글, 숫자, 특수문자만 입력 받기(2)
'Mac&iOS' 카테고리의 다른 글
정규식으로 텍스트필드에 영문, 한글, 숫자, 특수문자만 입력 받기(3) (0) | 2016.07.06 |
---|---|
정규식으로 텍스트필드에 영문, 한글, 숫자, 특수문자만 입력 받기(2) (0) | 2016.06.29 |
XCode Build Clean (0) | 2016.06.23 |
NSButton setFrame Not working (0) | 2016.06.22 |
NSMenu와 NSMenuItem (0) | 2016.06.21 |