Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 신도림 테크노마트
- loop
- 공략
- 포켓볼
- LG유플러스
- UITableView
- 해몽
- 앱스토어
- 페이백
- 샘플
- simulator
- Check
- 아이폰7
- 보라카이
- UIView
- 신도림
- IOS
- 얻는법
- setting
- GCD
- Bitcode
- 스마트폰
- swift3
- Example
- error
- swift
- 포켓몬 GO
- afterdelay
- Xcode
- push
Archives
- Today
- Total
도래울
UITextField 에서 Money Format 자동완성 하기 본문
자 오늘 제가 하고 싶은 일은, UITextField에 숫자를 입력할때, ","를 자동으로 집어 넣는것입니다.
1111->1,111 이런식으로 표기가 되는것이죠.
일단 값 변경이 일어 나는것을 Catch 하는 방법은 두가지가 있습니다.
UITextFieddDelegate의 "textField:shouldChangeCharactersInRage:replacementString:" 을 이용하는 방법이 하나이고,
두번째로, UITextFieldTextDidChangeNotification을 이용하는 것입니다.
UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;
우선, Notification을 사용하는 방식은 선호 하지 않는 방법이기도 하고, Notification을 등록하면, [textField setText:] Method가 불러 질때 에도 불러짐으로 사용하지 않고, UITextFieldDelegate Method를 구현해서 사용하도록 하겠습니다.
TextField 의 값 Setting을 UITextField 내부에서 하지 않고, 우리 쪽 소스에서 하도록 해야 합니다.
결국 shouldChange... 샬라 샬라에서 NO 를 줘서, 변경이 일어 나지 않게 합니다.
아래 소스는 UITextField 내부 구현이 아닌, 우리의 구현으로 기본적이 동작이 가능하게 하는 코드 입니다.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *newText = [textField.text stringByReplacingCharactersInRange:range withString:string];
[textField setText:newText];
return NO;
}
여기에 newText를 우리가 원하는 포맷으로 변경해주는 Formatter를 삽입하여, 콤마를 자동입력하게 할수 있습니다.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *newText = [textField.text stringByReplacingCharactersInRange:range withString:string];
[textField setText:[DataFormatter moneyFormat:newText]];
return NO;
}
iOS에서 MoneyFormatting에 관한 내용은 http://krazie99.tistory.com/49 에서 참조 하시면 됩니다 :)
이를 응용해서, iOS에서 이런저런 Auto Format Completion을 비롯한 이런저런 자동완성기능을 할 수 있을꺼라 생각됩니다.
'개발 > iOS' 카테고리의 다른 글
swift uilabel multi color, font (0) | 2016.05.23 |
---|---|
swift alert ios8 example (0) | 2016.05.23 |
Swift image viewer 오픈소스 (0) | 2016.05.10 |
LocationManager 가 작동 하지 않는 경우 (0) | 2016.05.04 |
UIView frame, bounds 그리고 좌표 (0) | 2016.05.04 |
Comments