반응형
Notice
Recent Posts
Recent Comments
Link
Today
Total
07-07 21:40
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
관리 메뉴

iOS 개발 기록 블로그

iOS (Swift) UITextField 다루기 본문

iOS

iOS (Swift) UITextField 다루기

crazydeer 2022. 6. 14. 15:25
반응형

생성

스토리보드에서 + 버튼을 눌러 Text Field 생성하면 된다.

 

UITextField Attributes Inspector

 

해당 UI 클릭하면 오른쪽에 속성 인스펙터 창에서 위와 같이   있다.

 

Placeholder 희미하게 보이는 회색 글자이다.

 

UITextField Placeholder

 

 

 

Text Input Traits Capitalization 속성을 Words 해주면

단어의  글자가 대문자로 자동 입력된다.

마지막에 Return Key 속성은 키보드의 엔터키를 말한다.

UITextField Capitalization Attribute

 

 

ViewController 스크립트에서 UITextField 컨트롤+드래그앤드롭으로

IBOutlet 생성하고 오른쪽에 돋보기 버튼을 같은 방법으로

IBAction 만들어준다.

UITextField code 1

 

 

그리고 실행하면 직접 입력한 텍스트가 출력이  된다.

그러나 다시 지우고 다른 단어를 입력한  출력해보면 동작하지 않는다.

 

이걸 해결해보자.

 

 

먼저 11번째 줄에 클래스 선어하고 UITextViewDelegate 추가해준다.

 

 

그리고 21번째 줄에 viewDidLoad안에 위와 같이 추가해준다.

 

 

 

그리고 아래와 같이 함수를 만들어준다.

아래의 함수는 유저가 엔터(리턴) 눌렀을 

어떤 처리를 할지 나타내는 함수이다.

 

 

코드

import UIKit
 
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
    }
 
    @IBAction func searchPressed(_sender: UIButton) {
        searchTextField.endEditing(true)
        print(searchTextField.text!)
    }
    
    func textFieldShouldReturn(_textField: UITextField) -> Bool{
        searchTextField.endEditing(true)
        print(searchTextField.text!)
        return true
    }
    
    func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
        if textField.text!= ""{
            return true
        } else {
            textField.placeholder= "Type something"
            return false
        }
    }
    
    func textFieldDidEndEditing(_ textField: UITextField) {
        searchTextField.text = ""
    }
    
}

 

 

UITextFieldDelegate option키와 같이 누르면 protocol이라고 나온다.

UITextFieldDelegate Summary

 

다음 글에서 이것에 대해 알아보고 정리하려고 한다.

 

 

 

참고

안젤라유 강의: https://www.udemy.com/course/ios-13-app-development-bootcamp/

 

iOS & Swift - The Complete iOS App Development Bootcamp

From Beginner to iOS App Developer with Just One Course! Fully Updated with a Comprehensive Module Dedicated to SwiftUI!

www.udemy.com

 

반응형