화면밖을 탭해서 키보드를 내렸었는데 다른 방법을 써보았따
키보드를 내릴 때 화면 밖을 터치해야 내려지는 경우가 있다.
아래 코드에서 키보드 자리에 뷰를 넣었기 때문에 addTargetd 화면 밖을 터치하면 내려가는 액션을 구현할 수 있지 않을까..? 했는데
텍스트필드에서는 touchUpOutside가 먹지 않는다. 아마 edit 액션만 가능한 것 같다
numberTextField.inputView = lottoPickerView
numberTextField.addTarget(self, action: #selector(keyboardDown), for: .touchUpOutside)
// 액션이 호출이 안됨.....잘 쓰지 않음
lottoPickerView.delegate = self
lottoPickerView.dataSource = self
numberTextField.delegate = self
}
@objc
func keyboardDown() {
print("키보드 다운")
numberTextField.resignFirstResponder()
}
아래처럼 설정하면 선택을 하고 엔터를 쳤을 때 pickerViewr가 내려간다.
numberTextField.addTarget(self, action: #selector(keyboardDown), for: .editingDidEndOnExit)
사실 위처럼 addTarget으로 하지않고 편집시점을 잡아 키보드를 내린다고 한다.
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
numberTextField.text = "\(numberlist[row])회차" // 선택이 됐을 때 어떻게 텍스트필트에 어떻게 보여질 건지
//view.endEditing(true)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2) {
// 2초 후 실행될 부분
self.numberTextField.resignFirstResponder()
}
}
TextView의 키보드를 내려보겠다
아래처럼배경을 탭하는 걸로 절대내려가지 않았다.
직접 addtarget을 해주거나 새로운 터치가 있을 때 내려주니 잘 내려갔다..
tap에서는 첫번째 응답자 포기메서드는 구현되지 않았는데
touchBegan에서는 잘 됐다.
'짤막 TlL' 카테고리의 다른 글
NSTextAttachment (0) | 2022.07.30 |
---|---|
TextView Placeholder (0) | 2022.07.30 |
delegate (0) | 2022.07.29 |
배경색 랜덤으로 바꾸기(CGFloat) (0) | 2022.07.21 |
스토리보드 아이디 화면전환 안됨 (0) | 2022.07.21 |