iPhone UITextField에 "Clear"버튼 추가


175

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

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

답변:


329

이 버튼은 UITextField클래스에서 제공하는 내장 오버레이 이지만 iOS 2.2 SDK에서는 Interface Builder를 통해 설정할 수있는 방법이 없습니다. 프로그래밍 방식으로 활성화해야합니다.

이 코드 줄을 어딘가에 추가하십시오 ( viewDidLoad예 :) .

목표 -C

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

스위프트 5.0

myUITextField.clearButtonMode = .whileEditing

61

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

여기에 이미지 설명을 입력하십시오

XCode 5.1에서 가져온


1
이 질문은 특히 2.2 SDK에 대해 묻고이 옵션은 이후 버전의 Interface Builder에서 사용할 수 있습니다.
Kristopher Johnson

47

스위프트 4+ :

textField.clearButtonMode = UITextField.ViewMode.whileEditing

또는 더 짧게 :

textField.clearButtonMode = .whileEditing

열거 형 유형을 수정하십시오. 대문자로 시작해서는 안됩니다.
T. Pasichnyk

35

다음을 사용하여 사용자 정의 지우기 버튼을 추가하고 크기와 모든 것을 제어 할 수 있습니다.

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];

7

목표 C :

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

빠른 :

txtUserNameTextfield.clearButtonMode = UITextField.ViewMode.WhileEditing;

6

스위프트 4 (크리스토퍼 존슨의 답변에서 수정)

textfield.clearButtonMode = .always

textfield.clearButtonMode = .whileEditing

textfield.clearButtonMode = .unlessEditing

textfield.clearButtonMode = .never

6

이 작동하지 않습니다, 나처럼 :

빠른:

customTextField.clearButtonMode = UITextField.ViewMode.Always

customTextField.clearsOnBeginEditing = true;

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

6

Xcode 8 (8A218a)에서 :

빠른:

textField.clearButtonMode = UITextField.ViewMode.whileEditing;

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


0
  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

     }
}

-4

Xcode 버전 8.1 (8B62)에서는 속성 관리자에서 직접 수행 할 수 있습니다. textField를 선택한 다음 속성 관리자에있는 지우기 버튼 드롭 다운 상자에서 적절한 옵션을 선택하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.