【Swift】TextField가 공란이면 버튼 무효화

6155 단어 Swift
자주 있는 「텍스트를 입력→추가 버튼을 누른다→데이터 추가」라고 하는 동작.
앱의 오작동을 방지하기 위해 켜고 싶은 것이
「TextField가 공란이라면 추가 버튼을 누르지 않는다」라고 하는 기능. 만드는 방법을 남겨 둡니다.

구현 방법



TextField 및 추가 버튼 만들기


@IBOutlet weak var newContentsTextField: UITextField!
@IBOutlet weak var addButton: UIButton!

TextField의 "Editing Changed"연결



Storyboard의 TextField를 마우스 오른쪽 버튼으로 클릭
오브젝트가 변경되었을 때에 불리는 「Editing Changed」를 ViewController에 접속


@IBAction func textEditingDidChanged(_ sender: Any) {

}

htps : //로 ゔぇぺぺr. 아 ぇ. 코 m / 도쿠 멘 타치 온 / 우이 키 t / 우이 콘 t / l / 에 ぇ t / 1618241

TextField 변경 처리 추가



TextField가 공란일 때 「버튼의 무효화」 「반투명」으로 합니다.
 private func updateTextFieldButton() {
  if newContentsTextField.text == "" {
      addButton.isEnabled = false
      addButton.layer.opacity = 0.4
  } else {
      addButton.isEnabled = true
      addButton.layer.opacity = 1
  }
}

viewDidLoad 및 Editing Changed에 추가



화면을 읽을 때와 TextField를 변경할 때 비어 있는지 확인
@IBAction func textEditingDidChanged(_ sender: Any) {
   updateTextFieldButton()
}

override func viewDidLoad() {
    super.viewDidLoad()
    updateTextFieldButton()
}

전체 코드


@IBOutlet weak var newContentsTextField: UITextField!
@IBOutlet weak var addButton: UIButton!

@IBAction func textEditingDidChanged(_ sender: Any) {
    updateTextFieldButton()
}

override func viewDidLoad() {
    super.viewDidLoad()
    updateTextFieldButton()
}

private func updateTextFieldButton() {
  if newContentsTextField.text == "" {
      addButton.isEnabled = false
      addButton.layer.opacity = 0.4
  } else {
      addButton.isEnabled = true
      addButton.layer.opacity = 1
  }
}

좋은 웹페이지 즐겨찾기