UITextField를 편집하는 동안 사용자가 "return"키보드 버튼을 눌렀는지 어떻게 감지 할 수 있습니까? 사용자가 "return"버튼을 눌렀을 때 키보드를 해제하려면이 작업을 수행해야합니다.
감사.
UITextField를 편집하는 동안 사용자가 "return"키보드 버튼을 눌렀는지 어떻게 감지 할 수 있습니까? 사용자가 "return"버튼을 눌렀을 때 키보드를 해제하려면이 작업을 수행해야합니다.
감사.
답변:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
스토리 보드에서 델리게이트를 설정하는 것을 잊지 마십시오 ...
self.yourTextField.delegate = self;
. 여러 텍스트 필드도 작동합니다.
위임이 필요하지 않습니다. 여기에 한 줄짜리가 있습니다.
- (void)viewDidLoad {
[textField addTarget:textField
action:@selector(resignFirstResponder)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
슬프게도 스토리 보드에서 직접이 작업을 수행 할 수는 없지만 (스토리 보드에서 해당 작업을 내보내는 컨트롤에 작업을 연결할 수 없음) 중개 작업을 통해 수행 할 수 있습니다.
UIControlEventEditingDidEndOnExit
경우에만 이벤트가 전송 된다는 점을 지적하고 싶습니다 textFieldShouldReturn:
(텍스트 필드를 사임하지 않고).
YES
이이 방법 으로 돌아와야 할 수도 있습니다 .
SWIFT 3.0
override open func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
enterPressed () 함수에서 원하는 모든 동작을 넣으십시오.
func enterPressed(){
//do something with typed text if needed
textField.resignFirstResponder()
}
- (BOOL)textFieldShouldReturn:(UITextField *)txtField
{
[txtField resignFirstResponder];
return NO;
}
엔터 버튼을 클릭하면이 델리게이트 메서드가 호출되며이 델리게이트 메서드에서 리턴 버튼을 캡처 할 수 있습니다.