키보드 켜기 및 끄기

다음 내용은'iOS 개발 안내서(제3판)'관동승 저서에서 나온 것이다.
TextField 및 TextView 작업의 경우
키보드 열기
키보드를 열려면 보기 컨트롤러 ViewController의 코드에서 UItextFieldDelegate와 UItextViewDelegate가 의뢰한 프로토콜을 실현해야 한다. 관련 코드는 다음과 같다.
<span style="font-size:18px;">// ViewController.h       
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>

@end</span>
<span style="font-size:18px;">// ViewController.m       
#import "ViewController.h"

@interface ViewController ()<UITextFieldDelegate,UITextViewDelegate>

@end</span>

의뢰 대상인 ViewController가 TextView와 TextField 공간에 분배된 의뢰 속성delegate를 설명해야 합니다
Interface Builder 디자이너에서 스토리보드 파일을 열고 TextField 컨트롤을 오른쪽 단추로 누르고 팝업된 단축 메뉴를 마우스로 드래그하고 Outlets -> delegate 뒤에 있는 작은 도트 왼쪽에 있는 View Controller에서 TextView 컨트롤을 똑같이 합니다.
키보드 끄기
'첫 번째 응답자' 신분을 포기하려면 UIResponder 클래스의resignFirstResponder 방법을 호출해야 합니다. 이 방법은 키보드의return 키나 배경 보기를 눌렀을 때 터치합니다. 본 예는return 키를 눌렀을 때 키보드를 닫는 방식을 사용합니다.이 동작을 실현하려면 TextField와 TextView의 위탁 프로토콜을 이용하여 실현할 수 있습니다.관련 구현 코드는 다음과 같이 ViewController 파일에 있습니다.
<span style="font-size:18px;">@implementation ViewController

#pragma mark - UITextField Delegate Method
//       “     ”
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

#pragma mark - UITextView Delegate Method
//       “     ”
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text isEqualToString:@"
"]) { [textView resignFirstResponder]; return NO; } return YES; }</span><span style="font-size:14px;"> </span>

좋은 웹페이지 즐겨찾기