반응형
스토리보드에서 datePicker Object를 사용하면 화면을 넓게 차지합니다.
그래서 TextField를 클릭하면 datePicker가 나오도록 해보겠습니다.
// datePicker 객체 생성
private let datePicker = UIDatePicker()
// datePicker를 원하는 유형으로 설정
// 고를 데이터
self.datePicker.datePickerMode = .date
// 선택 방식
self.datePicker.preferredDatePickerStyle = .wheels
// 언어 설정
self.datePicker.locale = Locale(identifier: "Korean")
// 이 코드로 textField에 datePicker를 넣을수 있다.
// dateTextField는 textField의 IBOulet
self.dateTextField.inputView = self.datePicker
TextField에 이벤트(Target) 추가
다음과 같은 방법으로 UI 요소의 값이 변경되었을 때 일어날 동작을 지정해줄 수 있습니다.
// datePocker에서 valueChanged가 일어나면 '원하는 함수가 실행'
self.datePicker.addTarget(self, action: #selector(원하는함수이름(_ :)), for: .valueChanged)
// 함수는 @objc로 작성
@objc private func datePickerValueDidChange(_ datePicker: UIDatePicker) -> Void {
// 코드 작성
}
// textField의 값 수정시 원하는 함수 실행
self.someTextField.addTarget(self, action: #selector(원하는함수(_:)), for: .editingChanged)
@objc private func 함수이름(_ textField: UITextField) {
// 실행될 코드 작성
}
수동으로 이벤트 보내기
사용자가 이벤트를 발생시키는 것 외에도 특정 동작을 했을 때 #selector에 지정된 함수를 실행시키고 싶을 때 사용 가능합니다.
// 위의 예시의 someTextField에 .editingChanged를 발생시켜보겠습니다.
self.someTextField.sendActions(for: .editingChanged)
이렇게 지정해주면 .editingChanged가 일어난 것과 같은 역할을 하게 됩니다.
반응형
'iOS > UIKit' 카테고리의 다른 글
[iOS] TableView의 prefetching 기능 (0) | 2022.02.22 |
---|---|
[iOS] StoryBoard를 쓰지 않고 코드로 작성하기 (0) | 2022.02.22 |
[IOS] dateFormatter( )로 Date( )를 String으로 만들기 (0) | 2022.02.07 |
[IOS] Alert 창 다루기 (0) | 2022.02.03 |
[IOS] UIBarButton 커스텀 (0) | 2022.02.03 |