반응형
출처: http://meetkei.com/wordpress/?p=1218
* UITextFieldDelegate Protocol
* 텍스트 속성
* 텍스트필드가 편집중인지 판별
* 편집을 시작할 경우 텍스트필드의 내용을 삭제
* 모양 설정
* 텍스트필드 이외의 부분을 클릭할 경우 키보드를 숨기는 코드
* UITextFieldDelegate Protocol
#pragma mark - #pragma mark UITextFieldDelegate Protocol Methods // 텍스트 필드의 내용이 변경될 때 실행된다. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { return YES; // NO를 리턴할 경우 변경내용이 반영되지 않는다. } // 텍스트 필드의 내용이 삭제될 때 실행된다. clearButtonMode 속성값이 UITextFieldViewModeNever가 아닌 경우에만 실행된다. - (BOOL)textFieldShouldClear:(UITextField *)textField { return YES; // NO를 리턴할 경우 변경내용이 반영되지 않는다. } // 텍스트 필드 편집을 시작할때 실행된다. - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { return YES; // 편집을 허용하지 않고자 할 경우 NO를 리턴한다. } // 텍스트 필드 편집이 시작된 후(First Responder가 된 후)에 실행된다. - (void)textFieldDidBeginEditing:(UITextField *)textField { } // 텍스트 필드 편집이 종료될때 실행된다. - (BOOL)textFieldShouldEndEditing:(UITextField *)textField { return YES; // NO를 리턴할 경우 편집을 종료하지 않는다. } // 텍스트 필드 편집이 종료된 후에 실행된다. - (void)textFieldDidEndEditing:(UITextField *)textField { } // 리턴 키를 누를때 실행된다. - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } |
* 텍스트 속성
// 텍스트필드에 저장된 문자열 NSString* strInField = [txtField text]; txtField.text = @"UITextField Sample safdasfafa"; // 지정된 문자열이 없을 경우 표시되는 회색 placeholder 문자열 txtField.placeholder = @"문자열을 입력하세요."; // 텍스트필드의 폰트 (기본값 : 12pt, Helvetica) txtField.font = [UIFont fontWithName:@"Helvetica" size:20.0f]; // 텍스트 색상 txtField.textColor = [UIColor blueColor]; // 텍스트 정렬 txtField.textAlignment = UITextAlignmentCenter; // 최소 폰트 크기 지정 (기본값 : 0.0) txtField.minimumFontSize = 10.0f; // 텍스트필드의 크기에 맞게 폰트 크기 변경 txtField.adjustsFontSizeToFitWidth = YES; |
* 텍스트필드가 편집중인지 판별
if (txtField.editing) { NSLog(@"편집중..."); } else { NSLog(@"편집중이 아님"); } |
* 편집을 시작할 경우 텍스트필드의 내용을 삭제
// 설정값이 YES인 경우에도 textFieldShouldClear: 메소드에서 NO를 리턴하는 경우에는 내용을 삭제하지 않는다. txtField.clearsOnBeginEditing = YES; |
* 모양 설정
// 테두리 모양 설정 txtField.borderStyle = UITextBorderStyleBezel; // 배경이미지 설정 : borderStyle 속성이 UITextBorderStyleRoundedRect가 아닌 경우에만 적용된다. txtField.background =[UIImage imageNamed:@"img1.jpg"]; txtField.disabledBackground = [UIImage imageNamed:@"img2.jpg"]; // 텍스트필드 내부에 삭제 버튼을 표시한다. txtField.clearButtonMode = UITextFieldViewModeAlways; // 텍스트필드 내부에 아이콘을 표시한다. UIImageView* leftView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon.png"]]; txtField.leftView = leftView; txtField.leftViewMode = UITextFieldViewModeAlways; |
* 텍스트필드 이외의 부분을 클릭할 경우 키보드를 숨기는 코드
NSArray* subArray = self.view.subviews; id v; for (v in subArray) { if ([v conformsToProtocol:@protocol(UITextInputTraits)]) { [v resignFirstResponder]; } } |
728x90
반응형
댓글