programing

iPhone UI 텍스트 필드에 "지우기" 단추 추가

goodsources 2023. 6. 10. 09:03
반응형

iPhone UI 텍스트 필드에 "지우기" 단추 추가

UI 텍스트 필드 오른쪽에 텍스트를 지우는 작은 "X" 버튼을 추가하려면 어떻게 해야 합니까?iPhone OS 2.2 SDK의 Interface Builder에서 이 하위 컨트롤을 추가하기 위한 속성을 찾을 수 없습니다.

참고: Xcode 4.x 이상(iPhone 3.0 SDK 이상)에서는 Interface Builder에서 이 작업을 수행할 수 있습니다.

이 버튼은 에서 제공하는 기본 제공 오버레이입니다.UITextField클래스, 하지만 iOS 2.2 SDK부터는 인터페이스 빌더를 통해 설정할 수 있는 방법이 없습니다.프로그래밍 방식으로 활성화해야 합니다.

이 코드 라인을 어딘가에 추가합니다.viewDidLoad예):

목표-C

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

스위프트 5.0

myUITextField.clearButtonMode = .whileEditing

또한 속성 관리자 아래의 인터페이스 작성기에서 직접 설정할 수도 있습니다.

여기에 이미지 설명 입력

XCode 5.1에서 가져온 것

Swift 4+:

textField.clearButtonMode = UITextField.ViewMode.whileEditing

또는 더 짧습니다.

textField.clearButtonMode = .whileEditing

다음을 사용하여 사용자 지정 지우기 단추를 추가하고 크기 및 모든 항목을 제어할 수 있습니다.

UIButton *clearButton = [UIButton buttonWithType:UIButtonTypeCustom];
[clearButton setImage:img forState:UIControlStateNormal];
[clearButton setFrame:frame];
[clearButton addTarget:self action:@selector(clearTextField:) forControlEvents:UIControlEventTouchUpInside];

textField.rightViewMode = UITextFieldViewModeAlways; //can be changed to UITextFieldViewModeNever,    UITextFieldViewModeWhileEditing,   UITextFieldViewModeUnlessEditing
[textField setRightView:clearButton];

Swift 4 (크리스토퍼 존슨의 답변에서 채택됨)

textfield.clearButtonMode = .always

textfield.clearButtonMode = .whileEditing

textfield.clearButtonMode = .unlessEditing

textfield.clearButtonMode = .never

목표 C:

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

스위프트:

txtUserNameTextfield.clearButtonMode = UITextField.ViewMode.WhileEditing;

이건 안 돼요, 저처럼 하세요.

신속:

customTextField.clearButtonMode = UITextField.ViewMode.Always

customTextField.clearsOnBeginEditing = true;

func textFieldShouldClear(textField: UITextField) -> Bool {
    return true
}

Xcode 8(8A218a)의 경우:

스위프트:

textField.clearButtonMode = UITextField.ViewMode.whileEditing;

"W"는 대문자에서 대문자가 아닌 "w"로 바뀌었습니다.

  func clear_btn(box_is : UITextField){
    box_is.clearButtonMode = .always
    if let clearButton = box_is.value(forKey: "_clearButton") as? UIButton {
        let templateImage =  clearButton.imageView?.image?.withRenderingMode(.alwaysTemplate)

        clearButton.setImage(templateImage, for: .normal)
        clearButton.setImage(templateImage, for: .highlighted)

        clearButton.tintColor = .white

     }
}

아래 코드 행을 사용합니다.오른쪽 보기가 있으면 지우기 버튼이 표시되지 않습니다.

self.txtField.rightView = nil
self.txtField.rightViewMode = .never
self.txtField.clearButtonMode = UITextField.ViewMode.always

Xcode Version 8.1(8B62)에서는 Attributes Inspector에서 직접 수행할 수 있습니다.textField를 선택한 다음 속성 관리자에 있는 Clear Button 드롭다운 상자에서 적절한 옵션을 선택합니다.

언급URL : https://stackoverflow.com/questions/320078/adding-the-clear-button-to-an-iphone-uitextfield

반응형