태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

mobile/ios2010/05/18 13:53

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이 눌렸을때에는, 키보드를 감추고, 로그인을 수행합니다.

간단하죠? ^^
Posted by THLIFE.net
TAG

TRACKBACK http://thlife.net/trackback/1011 관련글 쓰기

댓글을 달아 주세요