UITextView Class Reference에 Return 키를 누를 때 키보드가 자동으로 숨겨져 있다고하는 내용이 보이지 않습니다.
또한 UITextViewDelegate
protocol에는 textViewShouldReturn:
메시지가 없습니다. UITextFieldDelegate
protocol에 textFieldShouldReturn:
메시지가 있지만 텍스트보기는 텍스트 필드가 아닙니다.
사용자가 Return 키를 누를 때 키보드를 숨기려면 두 가지 작업을 수행해야합니다.
먼저 텍스트보기의 delegate
콘센트에 일부 객체 (일반적으로보기 컨트롤러)를 연결해야합니다. 당신은 당신의 펜촉에 그 작업을 수행 할 수 있습니다, 또는 당신이 당신의 viewDidLoad
방법에 아마 코드에서 작업을 수행 할 수 있습니다
- (void)viewDidLoad {
[super viewDidLoad];
myTextView.delegate = self;
}
둘째, 당신은 당신의 위임 객체의 textView:shouldChangeTextInRange:replacementText:
을 구현해야합니다
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
} else {
return YES;
}
}
주 사용자가 개행 문자와 다른 문자가 포함 된 텍스트를 붙여 넣으면 새 라인을 잡을 수 없습니다. 사용자가 Return 키를 누르거나 개행 만 포함 된 텍스트에 붙여 넣을 때만 알림을 보냅니다.
대표자의 클래스를 UITextViewDelegate
프로토콜을 준수한다고 선언 할 수 있습니다.이 경우 Xcode에서 메서드 이름을 자동 완성합니다. 그러나 클래스가 프로토콜을 준수하지 않는 경우에도 작동합니다.
텍스트 뷰의이 * 일반적으로, 사용자가 여러 줄의 텍스트를 입력 할 수 있도록위한 것입니다 *이 경우 당신이 사임하지 리턴 버튼을 필요로하는 명심 대신 키보드를 사용하여 줄 바꿈을 삽입하십시오. 텍스트 한 줄만 있으면 textField가 더 좋은 방법 일 수 있습니다. – lnafziger
네, 그런 상황에서 어떻게 키보드를 숨길 수있는 방법을 찾으라고 제안합니까? @lnafziger – trludt