UITextField 및 관련 키보드 컨트롤


UITextField에 관련한 키보드 올리기, 내리기 등의 코드를 정의한다.



1
2
3
// UITextField 컨트롤
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: .UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: .UIKeyboardWillHide, object: nil)
cs


UITextField에 deleagate를 지정 후, 레이아웃 초기화하는 부분에서 observer를 달아 컨트롤한다.


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
// 키보드 보이기 액션
    @objc func keyboardWillShow(_ sender: Notification)
    {
        NSLog("===== ViewController_item keyboardWillShow =====");
        
        self.view.frame.origin.y = -150 // Move view 150 points upward
    }
    
    // 키보드 숨기기
    @objc func keyboardWillHide(_ sender: Notification)
    {
        NSLog("===== ViewController_item keyboardWillHide =====");
        
        self.view.frame.origin.y = 0 // Move view 150 points upward
    }
    
    // 엔터로 키보드 내리기
    func textFieldShouldReturn(_ textField: UITextField) -> Bool
    {
        NSLog("===== ViewController_item textFieldShouldReturn =====");
        
        textField.resignFirstResponder()
        return true
    }
    
    // 아무데나 선택 시 키보드 내리기
    override func touchesBegan(_ touches: Set<UITouch>with event: UIEvent?){
        
        self.view.endEditing(true)
        
    }
cs


delegate로 인해 날아오는 관련 액션은 위와 같다.


키보드가 나타날 때 view y값을 -150, 사라질 때 0으로 변경하도록 하며,


소프트 키보드에서 enter 선택 시 키보드를 내리는 코드를 추가한다.

이 글을 공유하기


댓글(0)

Designed by CMSFactory.NET