iPhone은 MVC 패턴으로 되어있고, 프로토콜로부터 이벤트를 받기 위해서는, 클래스에 Delegate를 추가하고, delegate를 설정하면 된다.
2개의 UITextField 가 있고, 첫번째 UITextField에서 return키를 누르면, 두번째 return 키를 누르면 키보드를 숨기고, 로그인 프로세스를 태우는 걸 하고 싶다.
1. 2개의 UITextField를 선언해 놓고, .h 에 프로토콜을 추가합니다.
@interface TestViewController : UIViewController <UITextFieldDelegate>{
}
2. UITextField의 Delegate를 설정합니다.
UITextField_ID_1.delegate = self;
UITextField_ID_2.delegate = self;
3. return 을 눌렀을때 받는 함수를 override 합니다.
Jump to Definition에 가보니 다음과 같이 선언되어 있습니다.
- (BOOL)textFieldShouldReturn:(UITextField *)textField; // called when 'return' key pressed. return NO to ignore.
Override 하겠습니다.
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if ([textField isEqual:textField_1]) {
//2번째로 포커스 이
[userPwTextField becomeFirstResponder];
} else {
//키보드 감춤 & 로그인!
[userPwTextField resignFirstResponder];
[self loginProcess];
}
return YES;
}
참조를 갖고 있는 TextField 와 비교를 해서 첫번째에서 Enter가 눌렸을때에는 2번째 TextField로 포커스를 옮겨주고,
2번째 return이 눌렸을때에는, 키보드를 감추고, 로그인을 수행합니다.
간단하죠? ^^
'mobile > ios' 카테고리의 다른 글
| [iPhone4] iOS 4 GM seed 배포 (0) | 2010/06/08 |
|---|---|
| Developing for iPhone OS 4 beta 4 (0) | 2010/05/19 |
| [iPhone] UITextField 키보드 return 누를때 이벤트 받는법 (0) | 2010/05/18 |
| [iPhone] UITableView Scroll 위치 초기화 하기. (0) | 2010/05/17 |
| [iPhone] 각 나라별 Application 순위를 보여주는 곳 (0) | 2010/05/06 |
| [iPhone] OS 4 beta 3 로 올리고 나서 찾은 버그 [1] (0) | 2010/05/06 |
TAG iPhone




댓글을 달아 주세요