본문 바로가기

정규식으로 텍스트필드에 영문, 한글, 숫자, 특수문자만 입력 받기(3) 한글 입력이 문제다. 의도는 NSTextfield + NSFormatter + NSRegularExpression 조합으로 끝내는 것인데, 조합형 입력일 경우 글자 완성이 안되면 isPartialStringValid 에 들어오지를 않는다. 한글 자음(또는 모음) 한글자 입력 후 마우스 다른 곳에 클릭하면 Crash가 발생한다. 방법을 찾다찾다 안되서 어쩔 수 없이 isPartialStringValid 에 자음이나 모음 입력은 허용을 시켰다. 그리고 NSTextfield 자체를 상속 받아서 keyUp: 과 textDidEndEditing: 이벤트에서 처리하도록 했다. keyUp: 이벤트일 때 : 이전에 입력했던 값을 불러온다. 현재랑 이전 모두 허용하지 않은 문자(한글 자음이나 모음)이 있을 경우 해당 자.. 더보기
정규식으로 텍스트필드에 영문, 한글, 숫자, 특수문자만 입력 받기(2) 이전 포스팅 : 정규식으로 텍스트필드에 영문, 한글, 숫자, 특수문자만 입력 받기(1) 이제 값을 체크할 차례이다. 텍스트필드의 입력된 값을 가리키는 포인터는 partialStringPtr이다. 여기 값을 체크해서 return NO를 해주면 텍스트필드에 값이 입력되지 않는다. 간단하게 [*partialStringPtr length] > 10 인지 체크해서 return NO만 해주어도 글자가 10자 까지만 입력되게 할 수 있다. 좀더 복잡한 처리를 위해 정규식을 사용할 예정이다. Objective C에서는 정규식을 사용할때 NSRegularExpression 를 사용하면 된다. 영문이나 숫자만 최대 100자만 입력가능하게 하려면 다음과 같이 하면 된다. // 영문, 숫자 10자 NSString *expre.. 더보기
정규식으로 텍스트필드에 영문, 한글, 숫자, 특수문자만 입력 받기(1) 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.. 더보기