Swift

Swift:TextFieldが隠れちゃうのをなんとかする!


今回はTextFieldがキーボードに隠れてしまう問題の解決方法をメモしていきます。

 

TextFieldがキーボードに隠れてしまう問題

誰もが一度は引っかかる問題ですよね・・・

 

 

 

解決例

  • そもそもTextFieldを下に置かない。
  • LINEみたいにTextFieldをキーボードの高さ分を上に移動させる。←今回はこれをやります!

 

 

 

それではコードを書いていきます!

トータルのコード

let SCREEN_SIZE = UIScreen.main.bounds.size

スクリーンサイズを取ってきています。

後々効いてきます!

 

NotificationCenter.defaults.addObserver

ここが複雑ですよね・・・・とりあえず使い方はこんな感じです!!

NotificationCenter.default.addObserver(通知を受け取るオブジェクト, selector: #selector(通知を受け取った時に実行される関数), name: 受け取る通知の名前,  object: nil)

textFieldをタップ

keyboardwillshow(これからキーボード出るよ〜〜!)という通知が送られる。

通知を受け取るオブジェクトは『ViewController』ですね。

通知を受け取った時に実行される関数(func keyboardWillShow(_ notification: NSNotification){} )が実行されます。

 

 

func keyboardWillShow(_ notification: NSNotification){} の中身

とっても単純です。

飛び出るキーボードの高さを取得して、

let keyboardHeight = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as AnyObject).cgRectValue.height

キーボードとtextFieldの高さをスクリーンサイズから引いた値をtextFieldのy軸の座標にしています。

textField.frame.origin.y = SCREEN_SIZE.height – keyboardHeight – textField.frame.height

 

どうですか??

以外に面倒ですよね。笑


コメントを残す

*