1
TextField의 글자 수 한도를 설정해야합니다. 나는이 answer을 따라 갔고 한계를 설정할 수있었습니다. 하지만 이제는 엔터를 누르면 모든 문자가 지워집니다. 무엇이 잘못 되었습니까?한계를 NSTextField로 설정하십시오.
- (BOOL)isPartialStringValid:(NSString *__autoreleasing *)partialStringPtr
proposedSelectedRange:(NSRangePointer)proposedSelRangePtr
originalString:(NSString *)origString
originalSelectedRange:(NSRange)origSelRange
errorDescription:(NSString *__autoreleasing *)error {
if ([*partialStringPtr length] > maxLength)
return NO;
else
return YES;
}
- (NSString *)stringForObjectValue:(id)obj {
return (NSString*) obj;
}
- (BOOL)getObjectValue:(out __autoreleasing id *)obj
forString:(NSString *)string
errorDescription:(out NSString *__autoreleasing *)error {
return YES;
}
- (NSAttributedString *)attributedStringForObjectValue:(id)obj
withDefaultAttributes:(NSDictionary *)attrs {
return (NSAttributedString*) obj;
}
예는 'controlTextDidChange'를 사용하여 끝났지 만 대신 NSFormatter 클래스를 사용하여 나에게 옳은 것처럼 보였습니다. – user88975
NSFormatter에 대한이 스레드 확인 (http://stackoverflow.com/questions/827014/how-to-limit-nstextfield-text-length-and-keep-it-always-upper-case) –