본문 바로가기
카테고리 없음

UITextFieldDelegate Protocol

by 멍멍돌이야 2011. 3. 30.
반응형
출처: http://meetkei.com/wordpress/?p=1218


* 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
반응형

댓글