[ios] iPhone UITextField에 “Clear”버튼 추가

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

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



답변

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

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

목표 -C

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

스위프트 5.0

myUITextField.clearButtonMode = .whileEditing


답변

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

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

XCode 5.1에서 가져온


답변

스위프트 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];


답변

목표 C :

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;

빠른 :

txtUserNameTextfield.clearButtonMode = UITextField.ViewMode.WhileEditing;


답변

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

textfield.clearButtonMode = .always

textfield.clearButtonMode = .whileEditing

textfield.clearButtonMode = .unlessEditing

textfield.clearButtonMode = .never


답변

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

빠른:

customTextField.clearButtonMode = UITextField.ViewMode.Always

customTextField.clearsOnBeginEditing = true;

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