이 블로그 검색

2012년 4월 21일 토요일

UITextField Delegate - 리턴키 누르면 특정 동작하게

이 녀석을 오버라이드 해 주면 된다.
-(void)textFieldShouldReturn:(UITextField*)textField
{

}

보너스로, 텍스트 필드를 누르면 작동하는 Action은 다음의 delegate 함수를 이용한다.

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    [dateArrPopView1 removeFromSuperview];  // dateArrPopView1 뷰를 제거한다.
    [view_date removeFromSuperview];        // view_date 뷰를 제거한다.

참고로 이 딜리게이트는 키보드가 올라감에 따라 뷰가 같이 올라가는 기능을 구현해 줄때 많이 쓴다.

- (void)textFieldDidBeginEditing:(UITextField *)textField
{

    //키보드 호출 화면을 위로 이동  
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    CGAffineTransform transform = CGAffineTransformMakeTranslation(0.0, -250.0);
    [self.view setTransform:transform];
    
    [UIView commitAnimations];
     ///////////
       

    [dateArrPopView1 removeFromSuperview];
    
     // -> 만약 textField가 여러개 있고 그 중 특정한 텍스트필드에만 기능을 넣으려면
     // 아래와 같이 tag를 주면된다.

    if([textField tag] == 2){   
        [labState1 setText:@""];

    }
}

// 키보드를 내릴때 기능을 넣고 싶으면 아래와 같이...(화면을 원상 복귀하는 기능을 넣었다.)

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    //키보드 Done 화면을 원래 위치로 
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    CGAffineTransform transform = CGAffineTransformMakeTranslation(0.0, 0.0);
    [self.view setTransform:transform];
    
    [UIView commitAnimations];
}




댓글 없음:

댓글 쓰기