キーボードの表示時にテキストフィールドをスライドさせる

入力フィールドが画面の下側であって欲しい要件は少なくありません。 いくらスマートフォンの画面が大きくなったと言っても、キーボードはある程度の大きさがありますし、 入力フィールドの場所の兼ね合いもあって、下手すると入力フィールドが見えなくなって入力できないとか厄介なものです。

こういう問題はハードウェアキーボードで入力している時はおきない問題ですが、ソフトウェアキーボードがを使う上ではどうしても発生する問題、 というか画面デザイン上、どうしても配慮しないといけない点です。

さて、キーボードの表示に合わせて、入力場所を移動する簡単な方法としては、IQKeyboardManager を利用する方法があります。

IQKeyboardManager の利用方法

IQKeyboardManager は CocoaPods からインストールできます。

ターミナルで Xcode プロジェクト (.xcodeproj) のあるディレクトリに移動します。

$ pod init
... Podfile の編集
... 次の行を追加。
... pod 'IQKeyboardManagerSwift'
... Podfile の保存.
$ pod install

CocoaPods でインストールしたらインストールバージョンを、Podfile に追加しておくと良いです。

pod install のあとは foo.xcodeproj ではなく、Xcode ワークスペース foo.xcworkspace を使います。

$ open foo.xcworkspace

さて Xcode を開いたら AppDelegate.swift で IQKeyboardManagerSwift をインポートし、 IQKeyboardManager.shared.enable = true とします。

次のような感じになります。

import UIKit
import IQKeyboardManagerSwift

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        IQKeyboardManager.shared.enable = true
        return true
    }
}

これで、自動的に入力フィールドが見える場所に表示されるようになります。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Swift による iOS 開発入門