Develop
2014.06.30 11:13
[ios] TextField 특정 문자만 사용하도록 하기
조회 수 2686 댓글 0
Xcode의 TextField 사용할때 특정 문자만 입력 받도록 하기 위해서는 다음과 같이 한다.
예) 숫자와 영문자만 입력 받기
#define LEGAL_TEXT @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz " - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:LEGAL_TEXT] invertedSet]; NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; return [string isEqualToString:filtered]; }
예2) 숫자와 소수점만 입력 받기 (소수점이 입력된 뒤에는 숫자만 입력 받는다)
키패드 타입을 변경
entryField.keyboardType = UIKeyboardTypeNumbersAndPunctuation; #define NUMBERS @"0123456789" #define NUMBERSPERIOD @"0123456789." - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSCharacterSet *cs; NSString *filtered; // Check for period if ([entryField.text rangeOfString:@"."].location == NSNotFound) { cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERSPERIOD] invertedSet]; filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; return [string isEqualToString:filtered]; } // Period is in use cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet]; filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; return [string isEqualToString:filtered]; }
[출처] http://comxp.tistory.com/250
-
[c] 단기과정[01/17] 후위연산 스택 계산기..
-
[js] 네이버에서 그림 퍼올 때.. URL Encoding 관련ㅋㅋ
-
[c] 단기과정[01/08] 배열, 포인터
-
[php] 웹 터미널 & 업로드 소스..
-
[c] 네트워크 관련 프로그래밍 (포트스캔 탐지 샘플)
-
[c] 시스템 보안 과제.. 시간(amc time) 변경
-
[c] 함수 목록과 예제 소스 파일
-
[c] 문자열 라이브러리 최신버전
-
[c] 연산자 우선순위.. ㅋㅋ
-
[c] 시스템공학 레포트 (pass1, pass2)
-
[c] 가변인자 함수(printf와 같은..)
-
[c] 로또(Lotto) 번호 생성기