텍스트를 지우는 UITextField의 오른쪽에 작은 "X"버튼을 어떻게 추가합니까? iPhone OS 2.2 SDK의 Interface Builder에서이 하위 제어를 추가하기위한 속성을 찾을 수 없습니다.
참고 : Xcode 4.x 이상 (iPhone 3.0 SDK 이상)에서는 Interface Builder에서이 작업을 수행 할 수 있습니다.
텍스트를 지우는 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
스위프트 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];
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
}
}