아이폰에서 빈 영역을 터치했을 때 키보드를 숨기는 방법
일반적으로 텍스트 입력 영역을 터치하면 키보드가 팝업되고 화면의 빈 영역을 터치하면 키보드가 사라집니다.어떻게 그렇게 만들까요?
우리가 아이폰 사파리에서 경험했던 것처럼...
감사해요.
업데이트된 방법(권장):
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
이렇게 하면 모든 하위 보기에서 편집이 종료되고 첫 번째 응답자가 사임합니다.
다른 방법(전체 텍스트 보기 열거):
이를 위한 단계별 설명은 다음과 같습니다.
- (IBAction) 배경과 같은 IBAction을 보기 컨트롤러에 추가합니다.터치: (id)발신자
백그라운드에서작업을 누르면 보기의 모든 텍스트 상자에 resignFirstResponder 메시지를 보내야 합니다.현재 FirstResponder 상태인 개체를 검색할 수 있는 방법이 없기 때문에 유감스럽지만 필요합니다.다음과 같이 보여야 합니다.
- (IBAction)backgroundTouch:(id)sender {
[someTextBox resignFirstResponder];
[anotherTextBox resignFirstResponder];
}
보기에 버튼 컨트롤을 추가하고 전체 보기 영역을 포함하도록 크기를 조정합니다(상태 표시줄이나 탭 또는 탐색 컨트롤러 제외).단추를 선택한 다음 레이아웃 메뉴로 이동하여 뒤로 보내기를 선택합니다.또한 단추의 유형을 사용자 지정으로 설정합니다. 단추에 대한 도면 코드를 지정하지 않으면 볼 수 없습니다.
버튼의 터치업 인사이드 이벤트를 배경에 연결합니다.터치: 액션을 수행하고 사용해 보십시오.
이 간단한 솔루션 사용
Swift 4의 경우:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
Swift 2의 경우:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
목표 C:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
UITextField, UITextView 및 모든 하위 뷰와 함께 작동합니다.
간단한 솔루션으로 백그라운드에서 버튼을 누를 필요가 없습니다.
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.textfieldName resignFirstResponder];
}
여기에 해당 문제에 대한 튜토리얼이 있습니다(DONE 키가 없는 숫자 키보드에 관한 것도 있음).
> iOS 4.0의 경우 다른 솔루션이 있습니다(그리고 더 나은 솔루션일 수도 있습니다). 이 코드를 사용하여 키보드를 숨기려면 아무 곳이나 한 번 누르면 됩니다.
// single tap to resign keyboard
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithBlock:^(UIGestureRecognizer *rec){
[input_text resignFirstResponder];
}];
self.singleTapRecognizer.numberOfTapsRequired = 1;
self.singleTapRecognizer.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:singleTapRecognizer];
보내세요resignFirstResponder
통제하에
다음 코드는 xamarin iOS 프로젝트에서 잘 작동합니다.
public override void TouchesBegan (NSSet touches, UIEvent evt){
View.EndEditing (true);
}
이 방법으로도 할 수 있습니다.
보기에서 배경을 눌러 키보드 숨기기
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[[self view] endEditing:YES];
}
저도 이 문제를 겪고 있었는데, 매우 짜증이 났습니다.하지만 사고가 났을 때 키보드를 없애는 방법을 알아냈어요.존에게 문자를 보내고 있다고 가정하면, 대화를 보는 데 방해가 되는 키보드가 있어 보이는 화면이 줄어들게 됩니다.왼쪽 상단에 있는 메시지를 클릭한 다음 문자를 보낸 기록이 있는 다른 사람을 선택하고 왼쪽 상단에 있는 메시지를 다시 누릅니다.그런 다음 돌아가서 John을 선택합니다.아니요, 당신은 존과 다시 대화를 나누었습니다. 키보드가 사라졌습니다.솔기는 많이 좋아하지만 꽤 빠릅니다.당신은 그들이 단지 키보드에 숨김 버튼을 눌렀을 거라고 생각할 것입니다. 하하하 도움이 되길 바라거나 충분히 분명했습니다.
위의 Val의 답변을 'initWithBlock:' 선택기를 사용하여 컴파일할 수 없습니다.
이 코드는 저에게 효과가 있습니다.보기를 정의하는 메서드에 이를 추가합니다. 내 보기는 구성되어 있으며 한 번 탭에 응답하려는 하위 보기는 'chatView'입니다.키보드를 사용하는 입력 필드 보기의 이름은 'chatInput'입니다.
// single tap to resign (hide) the keyboard
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
singleTapRecognizer.numberOfTouchesRequired = 1;
singleTapRecognizer.cancelsTouchesInView = NO;
[chatContent addGestureRecognizer:singleTapRecognizer];
그런 다음 탭 처리 방법을 추가합니다.
/**
* Handles a recognized single tap gesture.
*/
- (void) handleTapFrom: (UITapGestureRecognizer *) recognizer {
// hide the keyboard
NSLog(@"hiding the keyboard");
[chatInput resignFirstResponder];
}
swift 및 iOS 8/9로 작업하는 경우 이 솔루션이 제대로 작동합니다.
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
self.view.endEditing(true)
}
언급URL : https://stackoverflow.com/questions/804563/how-to-hide-the-keyboard-when-empty-area-is-touched-on-iphone
'programing' 카테고리의 다른 글
재할당을 사용하여 할당된 메모리 축소 (0) | 2023.08.10 |
---|---|
도커의 이미지를 삭제하려면 어떻게 해야 합니까? (0) | 2023.08.10 |
스프링 셸을 사용하여 스프링 부트 웹 애플리케이션에서 콘솔 명령을 빌드하는 방법은 무엇입니까? (0) | 2023.08.10 |
단추를 링크처럼 만드는 방법은 무엇입니까? (0) | 2023.08.10 |
사전 자르기 (0) | 2023.08.10 |