델리게이트 패턴은 처리해야 할 일 중 일부를 다른 객체에 넘기는 것을 뜻 한다.
UITextFieldDelegate 예제를 사용해서 사용자가 리턴(엔터)를 눌렀을 때 랜덤 값(게임의 결과)와 사용자가 입력 값이 같은지 확인하는 게임을 만들었다.
UITextFieldDelegate을 사용안하면 사용자가 숫자를 입력하고 버튼을 누르면 값을 비교하는 방법으로 진행을 했다.
UITextFieldDelegate을 사용하기 위해
class ViewController: UIViewController, UITextFieldDelegate { // ViewController클래스 옆에 UITextFieldDelegate을 채택 했다.
let result = Int.random(in: 0...100)
override func viewDidLoad() {
super.viewDidLoad()
inputNumber.delegate = self // 선언한 UITextFieldDelegate 위임자를 정해주는 과정
print(result)
}
ViewController가 inputNumber이라는 텍스트필드에 이벤트가 발생하면 프로토콜에 따라 응답을 주는 것.
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
var input = Int(inputNumber.text!)
if result == input {
resultLabel.text = "Bingo!"
}
else if result > input! {
resultLabel.text = "up"
}
else{
resultLabel.text = "down"
}
return true
}
UITextFieldDelegate안에 정의되어있는 함수인 textFieldShouldReturn을 사용해서 사용자가 값을 입력하고 버튼 클릭이 아닌 엔터를 누르게 되면 값을 비교하는 함수를 만들었다.
'개발 > 아이오에스' 카테고리의 다른 글
swift] UIImageView 클릭 시 동작 터치시 동작 UITapGestureRecognizer 사용 (0) | 2020.12.22 |
---|---|
swift] UIDatePicker - DateFormatter (0) | 2020.12.22 |
swift 기본 MVC 패턴 Model-View-Controller (0) | 2020.12.21 |
오토 레이아웃이란? (0) | 2020.12.21 |
Foundation 프레임워크 (0) | 2020.12.21 |