Develop
2014.06.30 11:13
[ios] TextField 특정 문자만 사용하도록 하기
Views 2797 Comment 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
-
GPL, AGPL, MPL,.. 한눈에 보는 오픈소스SW 라이선스
-
[js] 좋은 강연자료 & UI 자료
-
'2014 모바일 개발 트렌드' 발표자료입니다.
-
[ios] iOS 8 개발자가 우선 알아야 할 3가지
-
[js] jQuery 셀 병합
-
[ios] Xcode cannot run using the selected device
-
[ios] Objective-C 에서 자주 사용하는 수학 함수와 유용한 Define
-
[ios] 카테고리 확장 메소드를 찾지 못하는 경우
-
[ios] @property의 속성 (strong, weak, copy) 사용 경우
-
[ios] TextField 특정 문자만 사용하도록 하기
-
[ios] XCode에서 Provisioning Profile 여러개 중복될 때
-
알고리즘 성능 분석 기준