티스토리 뷰
728x90
반응형
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
registerForKeyboardNotifications()
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
unregisterForKeyboardNotifications()
}
//MARK: Keyboard events
func registerForKeyboardNotifications() {
NSNotificationCenter.defaultCenter().addObserver(self, selector:#selector(keyboardWillShow), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector:#selector(keyboardWillHide), name: UIKeyboardWillHideNotification, object: nil)
}
func unregisterForKeyboardNotifications() {
NSNotificationCenter.defaultCenter().removeObserver(self, name:UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().removeObserver(self, name:UIKeyboardWillHideNotification, object: nil)
}
func keyboardWillShow(note: NSNotification) {
// UI를 키보드 위로 올려준다
print("keyboardWillShow")
let s = note.userInfo![UIKeyboardFrameEndUserInfoKey]
let rect = s!.CGRectValue()
// 입력창 위치를 올려줌
var frame = textField.frame
frame.origin.y -= rect.height
textField.frame = frame
let keyboardFrameEnd = view!.convertRect(rect, toView: nil)
view.frame = CGRectMake(0, 0, keyboardFrameEnd.size.width, keyboardFrameEnd.origin.y)
view.layoutIfNeeded()
}
func keyboardWillHide(note: NSNotification) {
// UI를 원위치 한다
print("keyboardWillHide")
let s = note.userInfo![UIKeyboardFrameBeginUserInfoKey]
let rect = s!.CGRectValue()
var frame = textField.frame
frame.origin.y += rect.height
textField.frame = frame
frame = view.frame
view.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.width, frame.height+ rect.height)
view.layoutIfNeeded()
}
반응형
'모바일 프로그래밍' 카테고리의 다른 글
Android 6.0 요약 정리 (0) | 2016.07.05 |
---|---|
Android N Preview 요약 정리 (0) | 2016.07.05 |
iOS Swift NSThread 생성하기 (0) | 2016.07.05 |
iOS WWDC 2016 요약 정리 (0) | 2016.07.05 |
Android 소프트키 상태바 반투명 만들기 (0) | 2016.06.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday