IT

키 입력을 입력 할 때 UITextField의 값 가져 오기?

lottoking 2020. 8. 6. 22:20
반응형

키 입력을 입력 할 때 UITextField의 값 가져 오기?


다음 코드가 검증 가정 해봅시다.

IBOutlet UITextField* nameTextField;
IBOutlet UILabel* greetingLabel;

greetingLabel사용자가 아무 키나 누르 자마자 "Hello [nameTextField]"를 읽고 싶습니다 .

내가 기본적으로 필요한 것은 Cocoa 대리인과 동등한 iPhone controlTextDidChange입니다.

textField:shouldChangeCharactersInRange:대리자 메서드는 키 입력 (keystroke)가 보관 때마다 호출됩니다

- (BOOL)              textField:(UITextField *)textField
  shouldChangeCharactersInRange:(NSRange)range     
              replacementString:(NSString *)string

패키지 인수는 문자를 반환합니다. 그러나 실제 textField값 ( nameTextField.text)은 비어 있습니다.

내가 여기서 무엇을 놓치고 있습니까? ( nameTextField지금까지 사용자가 입력 한 숫자를 반영 하고 싶습니다 ).


가장 쉬운 방법은 Interface Builder를 사용하는 것입니다.

  • IBAction을 추가하십시오 (이 경우와 같이 ViewController에)
  • Interface Builder의 UITextField를 Ctrl- 클릭 (또는 오른쪽 클릭)
  • "편집 변경"이벤트를 첫 번째 단계에서 추가 한 파일 소유자의 IBAction에 연결하십시오.

매력처럼 작동합니다 :) (나는 이것에 많은 시간을 보입니다.


텍스트 필드에서 UIControlEventEditingChanges 이벤트에 대한 조치를 등록 할 수 있습니다.

[nameTextField addTarget:self action:@selector(updateLabelUsingContentsOfTextField:) forControlEvents:UIControlEventEditingChanged];

...

// TODO: error checking

- (void)updateLabelUsingContentsOfTextField:(id)sender {

    greetingLabel.text = [NSString stringWithFormat:@"Hello %@", ((UITextField *)sender).text];

}

UITextFieldUITextFieldTextDidChange등록하면 텍스트가 변경 될 때마다 발생 하는 알림 이 있습니다. 해당 알림에 등록하고 알림에서 호출 한 메소드에서 레이블의 텍스트를 변경하십시오.

이에 전달 된 추가하기 위해 알림 제공에 전달 된 객체는 UITextField입니다.

희망이 도움이됩니다.

참고 URL : https://stackoverflow.com/questions/388237/getting-the-value-of-a-uitextfield-as-keystrokes-are-entent

반응형