programing

UI 텍스트 필드에서 반환 키를 누를 때 키보드를 숨기는 방법은 무엇입니까?

lastcode 2023. 5. 7. 11:29
반응형

UI 텍스트 필드에서 반환 키를 누를 때 키보드를 숨기는 방법은 무엇입니까?

텍스트 필드를 클릭하면 키보드가 나타납니다.사용자가 리턴 키를 눌렀을 때 어떻게 숨기나요?

먼저 UITextField에 대한 파일 대리인을 만듭니다.

@interface MYLoginViewController () <UITextFieldDelegate>

@end

그런 다음 이 메서드를 코드에 추가합니다.

- (BOOL)textFieldShouldReturn:(UITextField *)textField {        
    [textField resignFirstResponder];
    return YES;
}

추가self.textField.delegate = self;

viewDidLoad선언:

[yourTextField setDelegate:self];

그런 다음 대리자 메서드의 재정의를 포함합니다.

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

스위프트에서 이걸 시도해 보세요.

1단계: 딜러를 자신으로 설정textField

textField.delegate = self

2단계: 클래스 선언 아래에 이 UITextFieldDelegate를 추가합니다.

extension YourClassName: UITextFieldDelegate {
    func textFieldShouldReturn(textField: UITextField) -> Bool {
         textField.resignFirstResponder()
        return true
    }
}

신속하게 다음과 같은 작업을 수행합니다.
당신의 첫 번째ViewController이것을 실행합니다.UITextFieldDelegate예를 들면.

class MyViewController: UIViewController, UITextFieldDelegate {
....
}

이제 대리인을 에 추가합니다.TextField반환이 탭될 때 키보드를 해제할 수 있습니다.viewDidLoad아래와 같은 메소드 또는 초기화할 위치.예를 들면.

override func viewDidLoad() {

    super.viewDidLoad()   
    myTextField.delegate = self
}

이제 이 방법을 추가합니다.

func textFieldShouldReturn(textField: UITextField) -> Bool {

    textField.resignFirstResponder()
    return true
}

스위프트 4

대리자 설정UITextField뷰 컨트롤러에서,field.delegate = self다음과 같은 경우:

extension ViewController: UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        // don't force `endEditing` if you want to be asked for resigning
        // also return real flow value, not strict, like: true / false
        return textField.endEditing(false)
    }
}

의 대표자를 정하다.UITextField그리고 오버라이드,textFieldShouldReturn메소드, 그 메소드에서는 두 줄 뒤에 쓰기만 하면 됩니다.

[textField resignFirstResponder];
return YES;

바로 그겁니다.코드를 작성하기 전에 대표자를 설정하는 것을 잊지 마십시오.UITextField속성 창에서 Return 키 유형을 "Done"(명령 + 시프트 + I)으로 설정합니다.

이거 해봐요.

[textField setDelegate: self];

그런 다음 textField 위임 메서드에서

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
}

이 클래스를 정의한 다음 클래스를 사용하도록 텍스트 필드를 설정하면 반환을 자동으로 누를 때 전체 숨기기 키보드가 자동으로 자동화됩니다.

class TextFieldWithReturn: UITextField, UITextFieldDelegate
{

    required init?(coder aDecoder: NSCoder) 
    {
        super.init(coder: aDecoder)
        self.delegate = self
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool
    {
        textField.resignFirstResponder()
        return true
    }

}

그런 다음 스토리보드에서 클래스를 사용하도록 필드를 설정하기만 하면 됩니다.

여기에 이미지 설명 입력

IBAaction과 "Primary Action Triggered"(UITextField에서 마우스 오른쪽 단추 클릭)를 연결하고 첫 번째 응답자를 위임 없이 사임할 수 있습니다.예(스위프트 4):

@IBAction func textFieldPrimaryAction(_ sender: UITextField) {
    sender.resignFirstResponder()
    ...
}

네, 초보자에게는 좀 헷갈릴 수도 있을 것 같습니다.적어도 Swift4에서는 위의 모든 것을 혼합한 것이 정답이라고 생각합니다.

확장을 만들거나 이를 사용할 View 컨트롤러를 사용하여 UITextFieldDelegate를 구현해야 합니다.재사용 가능성을 위해 확장 기능을 사용하는 것이 더 쉽다는 것을 알게 되었습니다.

extension UIViewController : UITextFieldDelegate {
    ...
}

그러나 대안은 다음과 같이 작동합니다.

class MyViewController: UIViewController {
    ...
}

확장 또는 ViewController에서 이전 옵션에 따라 textFieldShouldReturn 메서드를 추가합니다.

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    return textField.endEditing(false)
}

viewDidLoad 메서드에서 텍스트 필드의 대리자를 self로 설정합니다.

@IBOutlet weak var myTextField: UITextField!
...

override func viewDidLoad() {
    ..
    myTextField.delegte = self;
    ..
}

이상입니다.자, 여러분이 누를 때returntextFieldShouldReturn호출해야 합니다.

특정키에대키를숨기면려드보한보를 합니다.[self.view resignFirstResponder]; 보에서키숨기사면용려를 합니다.[self.view endEditing:true];

[textField resignFirstResponder];

사용

언급URL : https://stackoverflow.com/questions/3573955/how-to-hide-the-keyboard-when-i-press-return-key-in-a-uitextfield

반응형