[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)
}