Swift TextField didChange 텍스트필드 값 변경 감지
Web이 됐든 app이 됐든 어떤 서비스를 하면서 값을 입력받을 때 가장 많이 사용하는 것이 textField이다. 오늘은 이 textField에 대해 알아보도록 하자.
기본적인 UITextField 사용법
이 글을 읽는 사람은 textField를 어떻게 생성하는지 이미 알고 계실거라 생각한다. 그래도 혹시나 모르는 분들을 위해 textField를 만드는 법에 대해 소개하겠다.
- 먼저 textField를 storyboard상에 올려놓고,
- viewController에서
@IBOutlet var textField: UITextField!
이런 식으로 적어준 뒤, - 둘을 연결시켜준다.
- 원한다면 storyBoard상에서 placeholder 텍스트를 미리 입력시켜놓는다.
그렇다면 이렇게 텍스트가 입력될 때마다 이벤트가 발생하게끔 설정할 수는 없을까?
있다! textField에 .addTarget
을 접목시키면 된다. 구체적인 방법을 순서대로 살펴보자.
textField 값 변경 시 (textField didChange) 호출되는 메서드
-
먼저 textField 내의 text가 변경될 때 일어났으면 하는 로직을 담을
@objc func
하나를 선언하고 그 안에 코드를 입력한다.필자는 이를 위해 label하나를 스토리보드 위에 올려놓고 텍스트필드의 텍스트가 레이블에도 똑같이 뜨게끔 바꾸는 코드를 입력했다.
@objc func textFieldDidChange(_ sender: Any?) { self.label?.text = self.textField?.text }
-
이제 텍스트필드에 해당 함수를 연결시켜주자. 필자는 viewDidLoad() 시점에 해당 함수가 연결되게끔 구현했다.
override func viewDidLoad() { super.viewDidLoad() self.textField.addTarget(self, action: #selector(self.textFieldDidChange(_:)), for: .editingChanged) // 자세히 보면 for: 뒤에 .editingChanged로 에디팅이 될 때마다 해당 함수가 // 호출되리라는 것을 예상할 수 있다. }
한번 구현결과를 확인해보자.
'iOS::스위프트(swift) > just swift' 카테고리의 다른 글
ios/swift 이미지뷰에 앨범 이미지 넣기(이미지 뷰를 탭하여) (0) | 2021.03.11 |
---|---|
CocoaPods 설명, 설치법, 사용법 (0) | 2021.02.17 |
swift Slider 값 변경, 별점 기능 구현하기 (0) | 2021.02.10 |
(swift)label width 제한, 폰트 사이즈 조절, 화면 가운데로 가져오기 (0) | 2021.02.10 |
스위프트 Modal dismiss한 이후 tableView reload하기 (1) | 2020.12.30 |
최근댓글