🪬

IQKeyboardManagerでnumberPadも閉じるボタンを出したい

2024/10/13に公開

はじめに

IQKeyboardManagerでナンバーパッドはデフォルトで閉じるボタンが表示されないのでその解決方法。

できるもの


ナンバーパッド状態でもDoneボタンが追加されてキーボードが閉じれます。

IQKeyboardToolbarManager導入

IQKeyboardManagerに加え、IQKeyboardToolbarManagerも必要になるのでSPM等で追加します。
https://github.com/hackiftekhar/IQKeyboardToolbarManager

AppDelegate.swiftにコード追加

import UIKit
import IQKeyboardManagerSwift
import IQKeyboardToolbarManager

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        IQKeyboardManager.shared.enable = true
        IQKeyboardToolbarManager.shared.isEnabled = true
        return true
    }

IQKeyboardManagerとIQKeyboardToolbarManagerをインポートして以下コードを追加して完了です。

        IQKeyboardManager.shared.enable = true
        IQKeyboardToolbarManager.shared.isEnabled = true

IQKeyboardToolbarManagerを使用しない方法

import UIKit
import CoreData
import IQKeyboardManagerSwift

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        IQKeyboardManager.shared.enable = true
        IQKeyboardManager.shared.enableAutoToolbar = true
        return true
    }

上記のように、IQKeyboardToolbarManagerを使用しなくても表示されるがIQKeyboardManagerのバージョンによって警告がでる。

'enableAutoToolbar' is deprecated: Please disable Toolbar using `IQKeyboardManager.shared.enableAutoToolbar = false` and use `IQKeyboardToolbarManager` independently from https://github.com/hackiftekhar/IQKeyboardToolbarManager

'enableAutoToolbar' は非推奨です: IQKeyboardManager.shared.enableAutoToolbar=falseを使用してツールバーを無効にし、https://github.com/hackiftekhar/IQKeyboardToolbarManager から独立して IQKeyboardToolbarManager` を使用してください。

Discussion