ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • UITextField
    iOS/Xcode + Storyboard 2022. 3. 15. 22:01

    UITextField

    사용자에게 input을 받기 위해 사용하는 view이다.

    관련 속성

    attribute inspector의 Text Input Traits에서 다음과 같이 다양한 설정을 할 수 있다.

    관련 이벤트 설정

    UITextField에서 입력이 끝났을 때 키보드를 사라지게 하거나, 아무것도 입력하지 않은 상황에서 return key를 누르면 키보드가 사라지지 않게 하는 등의 이벤트를 설정해야 할 것이다. 이러한 경우 해당 view controller가 UITextDelegate 프로토콜을 준수하도록 하고 이벤트를 발생시키는 UITextField의 delegate 값을 해당 view controller로 설정하면 된다.

    class WeatherViewController: UIViewController, UITextFieldDelegate {
    
        @IBOutlet weak var conditionImageView: UIImageView!
        @IBOutlet weak var temperatureLabel: UILabel!
        @IBOutlet weak var cityLabel: UILabel!
        @IBOutlet weak var searchTextField: UITextField!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            searchTextField.delegate = self
        }
    
        // ...
    }

    그러면 다음과 같이 메서드 요구사항을 구현하여 다양한 이벤트에 대한 처리를 할 수 있다.

    class WeatherViewController: UIViewController, UITextFieldDelegate {
        // ...
    
        @IBAction func searchPressed(_ sender: UIButton) {
            searchTextField.endEditing(true) // dismiss keyboard
            print(searchTextField.text!)
        }
    
        func textFieldShouldReturn(_ textField: UITextField) -> Bool {
            searchTextField.endEditing(true) // dismiss keyboard
            return true
        }
    
        func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
            if searchTextField.text != "" {
                return true
            } else {
                searchTextField.placeholder = "Type something"
                return false
            }
        }
    
        func textFieldDidEndEditing(_ textField: UITextField) {
            searchTextField.text = ""
        }
    }

    Reference

    https://www.udemy.com/course/ios-13-app-development-bootcamp/

    'iOS > Xcode + Storyboard' 카테고리의 다른 글

    Navigation Controller + Segues  (0) 2022.07.05
    Dark mode & Vector image  (0) 2022.03.15
    Multi-screen app  (0) 2022.03.12
    Auto Layout  (0) 2022.03.11
    UI와 코드 연결  (0) 2022.03.10

    댓글

Designed by Tistory.