UIkeyboardDidShowNotification에서 textField를 키보드 높이로 이동하는 방법
많은 시도를 했지만 다음 3단계는 간단할 것 같다.
StoryBoard의 UIVIew Controller에 UITableView 및 UITextField 구성
UITableView를 UIVIew Controller의 상부에 배치하고, UIText Field와 그 배경의 UIVIew, 보내기 단추의 UIButton을 UIVIew Controller의 하부에 설정합니다.
AutoLayout, UIVIew를 사용하여 치수를 375*40으로 고정합니다.UITableView를 변경할 수 있습니다.
viewDidLoad에서 NSNotificationCenter 설명
UITableView, UITextField, UIVIew, UIButton을 원본 코드와 Outlet으로 연결한 후 viewDidLoad
에 다음과 같이 기술한다.
ViewController.swift override func viewDidLoad() {
//省略
// NSNotificationでキーボードを開けたイベントを取得
let notificationCenter = NSNotificationCenter.defaultCenter()
notificationCenter.addObserver(self, selector: #selector(self.openKeyboard(_:)), name: UIKeyboardDidShowNotification, object: nil)
}
UIKeyboardDidShowNotification
, 키보드가 표시되었음을 알립니다.
키보드를 열 때 실행되는 처리 설명
알림 센터에서 받은 userInfo
키보드의 크기를 확인하고 키보드의 높이self.textField.frame
등을 위로 이동합니다.
ViewController.swift //キーボードを開いたときに入力フィールドを移動させる
func openKeyboard(notification: NSNotification) {
if let userInfo = notification.userInfo {
if let keyboard = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue{
let keyBoardRect = keyboard.CGRectValue()
self.textField.frame = CGRectMake(5, (self.view.frame.height - 28 - keyBoardRect.size.height), self.view.frame.width - 70, 28)
self.sendView.frame = CGRectMake(0, (self.view.frame.height - 40 - keyBoardRect.size.height), self.view.frame.width, 40)
self.sendButton.frame = CGRectMake(self.view.frame.width - 55, (self.view.frame.height - 28 - keyBoardRect.size.height), 50, 28)
}
}
}
이로써 아이폰은 세로든 가로든 키보드의 높이에 따라 텍스트 입력란의 높이를 높일 수 있다.
Reference
이 문제에 관하여(UIkeyboardDidShowNotification에서 textField를 키보드 높이로 이동하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TOSHIMITSU_MIYACHI/items/ebca7db19204d2ca1e46
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
UITableView, UITextField, UIVIew, UIButton을 원본 코드와 Outlet으로 연결한 후
viewDidLoad
에 다음과 같이 기술한다.ViewController.swift
override func viewDidLoad() {
//省略
// NSNotificationでキーボードを開けたイベントを取得
let notificationCenter = NSNotificationCenter.defaultCenter()
notificationCenter.addObserver(self, selector: #selector(self.openKeyboard(_:)), name: UIKeyboardDidShowNotification, object: nil)
}
UIKeyboardDidShowNotification
, 키보드가 표시되었음을 알립니다.키보드를 열 때 실행되는 처리 설명
알림 센터에서 받은 userInfo
키보드의 크기를 확인하고 키보드의 높이self.textField.frame
등을 위로 이동합니다.
ViewController.swift //キーボードを開いたときに入力フィールドを移動させる
func openKeyboard(notification: NSNotification) {
if let userInfo = notification.userInfo {
if let keyboard = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue{
let keyBoardRect = keyboard.CGRectValue()
self.textField.frame = CGRectMake(5, (self.view.frame.height - 28 - keyBoardRect.size.height), self.view.frame.width - 70, 28)
self.sendView.frame = CGRectMake(0, (self.view.frame.height - 40 - keyBoardRect.size.height), self.view.frame.width, 40)
self.sendButton.frame = CGRectMake(self.view.frame.width - 55, (self.view.frame.height - 28 - keyBoardRect.size.height), 50, 28)
}
}
}
이로써 아이폰은 세로든 가로든 키보드의 높이에 따라 텍스트 입력란의 높이를 높일 수 있다.
Reference
이 문제에 관하여(UIkeyboardDidShowNotification에서 textField를 키보드 높이로 이동하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TOSHIMITSU_MIYACHI/items/ebca7db19204d2ca1e46
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
//キーボードを開いたときに入力フィールドを移動させる
func openKeyboard(notification: NSNotification) {
if let userInfo = notification.userInfo {
if let keyboard = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue{
let keyBoardRect = keyboard.CGRectValue()
self.textField.frame = CGRectMake(5, (self.view.frame.height - 28 - keyBoardRect.size.height), self.view.frame.width - 70, 28)
self.sendView.frame = CGRectMake(0, (self.view.frame.height - 40 - keyBoardRect.size.height), self.view.frame.width, 40)
self.sendButton.frame = CGRectMake(self.view.frame.width - 55, (self.view.frame.height - 28 - keyBoardRect.size.height), 50, 28)
}
}
}
Reference
이 문제에 관하여(UIkeyboardDidShowNotification에서 textField를 키보드 높이로 이동하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TOSHIMITSU_MIYACHI/items/ebca7db19204d2ca1e46텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)