본문 바로가기

프로그래밍/아이폰 프로그래밍

15. 텍스트필드 사용 및 키보드 on/off 기능 구현하기


인터페이스 빌더에서 위와 같이 텍스트 필드를 View에 만들어 줍니다.
텍스트 필드드의 속성에는 여러가지가 있는데 그중에 많이 사용하는 것들은...


Text - 입력된 텍스트
Placeholder - 문자열이 비어있을때 보이는 텍스트
Clear When Editing Begins - 텍스트필드를 클릭했을 경우 입력되어 있던 문자열이 지워진다.
Font - 폰트

이정도 입니다..

인터페이스 빌더를 저장(Cmd+S) 한 후, X-code를 빌드해 보면 텍스트 필드가 나오고 텍스트 필드를 클릭하면 키보드가 밑에서 튀어 나와 글씨를 입력할 수 있습니다.

그러나 글씨를 모두 입력한 후에도 키보드를 내릴 수가 없습니다.
키보드를 숨겨주기 위해서는 텍스트 필드에게 포커스를 놓으라고 요청해야 합니다. (최초 응답자 자리에서 물러나라고 요청해야한다.)

키보드의 Return Key를 Done키로 변경한 후 키보드를 숨기는 작업을 해보겠습니다.


우선 헤더파일에서..

#import <UIKit/UIKit.h>


@interface SimpleTwitViewController : UIViewController {

IBOutlet UITextField *notesField; // 텍스트필드 아웃렛 등록


}


@property (nonatomic, retain) UITextField *notesField; // 텍스트 필드 프로퍼티 등록


-(IBAction) textFieldDoneEditing:(id) sender; // 텍스트 필드 입력이 끝났다는 액션 등록


@end




그리고 .m 파일에서...


#import "SimpleTwitViewController.h"


@implementation SimpleTwitViewController


@synthesize notesField; // 텍스트 필드


- (IBAction) textFieldDoneEditing:(id) sender // 텍스트 필드 입력 종료 액션

{

[sender resignFirstResponder]; // 센더 (텍스트 필드)에게 최초 응답자 자리에서 물러나라는 메시지이다.

}

- (void)dealloc {

[notesField release]; // 메모리 해제를 잊지 말자.

    [super dealloc];

}


@end




이와 같이 등록한 후...





텍스트 필드의 File's Owner를 등록 합니다. ( Outlet 과 Receved Actions )

액션은 Did End On Exit를 사용합니다.


이 작업을 마치고 나면...



위와 같이 키보드에 Done키가 생성되며 텍스트 입력을 마치면 키보드를 숨길수 있습니다.