iOS

iOS UITextField 비활성화(수정 못하게) 하고, 클리어 버튼은 활성화 시키기

Dokon Jang 2023. 3. 2. 14:15
반응형

안드로이드 개발자로써 서서히  iOS 개발의 위한 스터디를 하고 있습니다.

UITextField에 수정을 못하게 하고, 클리어 버튼을 사용해야 하는 경우 가 발생하여 처리 할 수 있는 방법을 구글링에서 찾았습니다.

 

1. UITextField를 화면에 넣습니다.

 

2. TextField의 속성에서 클리어 버튼(Clear Button)을 추가합니다.

 

3. 해당 ViewController에 TextField의 변수를 연결합니다.

import UIKit

class ViewController: UIViewController {

	@IBOutlet weak var textField2: UITextField!
    
}

 

4. ViewController에 프로토클 UITextFieldDelegate을 상속 받습니다.

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

	@IBOutlet weak var textField2: UITextField!
    
}

 

5. UITextFieldDelegate의 함수 textFieldShouldBeginEditing을 재정의하는데, 리턴은 false로 합니다.

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var textField2: UITextField!

    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool{
            return false
    }
}

 

6. TextField 변수의 delegate를 지정하면 작업을 끝납니다.

(TextField는 수정 할 수 없고, 클리어버튼으로 내용은 삭제됩니다.)

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var textField2: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        textField2.delegate = self
    }

    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool{
            return false
    }
}
반응형