본문 바로가기

Mac&iOS

정규식으로 텍스트필드에 영문, 한글, 숫자, 특수문자만 입력 받기(3)

한글 입력이 문제다. 


의도는 NSTextfield + NSFormatter + NSRegularExpression 조합으로 끝내는 것인데, 


조합형 입력일 경우 글자 완성이 안되면 isPartialStringValid 에 들어오지를 않는다. 


한글 자음(또는 모음) 한글자 입력 후 마우스 다른 곳에 클릭하면 Crash가 발생한다. 


방법을 찾다찾다 안되서 어쩔 수 없이 isPartialStringValid 에 자음이나 모음 입력은 허용을 시켰다. 


그리고 NSTextfield 자체를 상속 받아서 keyUp: 과 textDidEndEditing: 이벤트에서 처리하도록 했다. 



keyUp: 이벤트일 때 : 이전에 입력했던 값을 불러온다. 현재랑 이전 모두 허용하지 않은 문자(한글 자음이나 모음)이 있을 경우 해당 자음이나 모음을 강제로 지워준다.

textDidEndEditing 이벤트일 때 : 허용하지 않은 문자(한글 자음이나 모음)이 있을 경우 해당 자음이나 모음을 강제로 지워준다.


이렇게 이중으로 처리해서 해결했다. -_-


좀더 좋은 방법이 있는지 찾아봐야 겠다.