Develop
2014.06.30 11:13
[ios] TextField 특정 문자만 사용하도록 하기
조회 수 2773 댓글 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
-
[java] netty (비동기 이벤트 방식 네트워크 프레임워크) 사용법 #1 (server)
-
XML, JSON, BSON, MSGPACK 장,단점 비교
-
[c] 셀프 넘버(Self Number) 구하기
-
[ios] iOS앱의 Xcode 빌드 과정
-
[펌] 게임 엔진 만든거 공개합니다.
-
[php][laravel] 라라벨 프로젝트 생성 및 구조
-
[js] jQuery, Javascript 모바일(스마트폰) 판단하는 방법
-
[php] Laravel Route에서 PC/Mobile 분기
-
[php] Laravel 4. twitter bootstrap 적용하기
-
[php][laravel] 라라벨 개발환경 세팅하기 (Mac, Window)
-
[js] show/hide 이벤트 감시 (Observing show/hide event)
-
[ios] TextField 특정 문자만 사용하도록 하기