[ios] UITextField를 편집 할 때 키보드를 해제하는 방법
키보드를 닫으려고 할 때 첫 번째 응답자를 사임하도록 UITextField에 지시해야하지만 사용자가 키보드에서 “완료”키를 언제 눌렀는지 알 수는 없습니다. 볼 수있는 알림이 있습니까?
답변
의 위임 UITextField
을 내 ViewController
수업으로 설정했습니다.
해당 클래스 에서이 방법을 다음과 같이 구현했습니다.
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
답변
텍스트 필드의 DidEndOnExit 이벤트를 InterfaceBuilder의 액션 (IBAction)에 연결하면 사용자가 키보드를 반환 할 때 (반환 키 사용) 메시지가 표시되고 발신자는 이벤트를 시작한 UITextField에 대한 참조가됩니다.
예를 들면 다음과 같습니다.
-(IBAction)userDoneEnteringText:(id)sender
{
UITextField theField = (UITextField*)sender;
// do whatever you want with this text field
}
그런 다음 InterfaceBuilder에서 텍스트 필드의 DidEndOnExit 이벤트를 컨트롤러의이 작업 (또는 UI의 이벤트를 연결하는 데 사용하는 모든 작업)에 연결하십시오. 사용자가 텍스트를 입력하고 텍스트 필드를 닫을 때마다 컨트롤러에이 메시지가 전송됩니다.
답변
컨트롤러에서 메소드를 생성 할 수도 있습니다
-(IBAction)editingEnded:(id)sender{
[sender resignFirstResponder];
}
그런 다음 IB의 Connection Inspector에서 “Did End On Exit”이벤트를 연결하십시오.
답변
쿠비, 고마워 코드가 작동했습니다. 그냥 (초보자 원하는 경우) 당신이 설정해야 말하는 것처럼 명시 적으로 UITextField
‘들 delegate
의 ViewController에서 텍스트 필드 상주와 동일합니다. 당신이 원하는 곳 어디에서나 할 수 있습니다. 나는 viewDidLoad
방법을 선택했다 .
- (void)viewDidLoad
{
// sets the textField delegates to equal this viewController ... this allows for the keyboard to disappear after pressing done
daTextField.delegate = self;
}
답변
다음은 코드없이 자동 키보드 해제 동작을 수행하는 요령입니다. 펜촉에서 Identity 관리자의 First Responder 프록시 객체를 편집하여 새로운 첫 번째 응답자 작업을 추가합니다. 그것을 호출하자 dummy:
. 이제 텍스트 필드의 종료시 종료 종료 이벤트를 dummy:
첫 응답자 프록시 오브젝트 의 조치에 연결하십시오. 그게 다야! 텍스트 필드의 종료시 종료 종료 이벤트에 조치-대상 쌍이 있으므로 텍스트 필드는 사용자가 Return을 누를 때 키보드를 자동으로 닫습니다. 응답자 체인으로 전송 된 메시지에 대한 핸들러를 찾지 못하면 페널티가 없으므로, dummy:
어디에도 구현이 없어도 앱이 충돌하지 않습니다 .
답변
그냥 추가
[textField endEditing:YES];
키보드를 비활성화하고 선택기보기를 표시하려는 위치
답변
Swift에서는 컨트롤러에 IBAction을 작성 하고 텍스트 필드의 Exit End Exit 이벤트를 해당 조치로 설정할 수 있습니다
@IBAction func returnPressed(sender: UITextField) {
self.view.endEditing(true)
}